社区讨论
本地过,但是WA on #8
P12302 [ICPC 2023 WF] Jet Lag参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @mhjshnbr
- 此快照首次捕获于
- 2025/11/04 07:46 4 个月前
- 此快照最后确认于
- 2025/11/04 07:46 4 个月前
CPP
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e6 + 10;
int n, s[N], t[N], pre[N], x[N], y[N], ls;
template <typename T> inline void read(T &x)
{
bool f = 0; x = 0; char ch = getchar();
while (ch < '0' || ch > '9') { if (ch == '-') f = !f; ch = getchar(); }
while ('0' <= ch && ch <= '9') { x = (x << 1) + (x << 3) + (ch ^ 48); ch = getchar(); }
x = f ? -x : x;
}
void prt(int x)
{
if (x < 0) putchar('-'), x = -x;
if (x > 9) prt(x / 10);
putchar(x % 10 + '0');
}
signed main()
{
//freopen("P12302_8.in", "r", stdin);
//freopen("P12302_8.out", "w", stdout);
read(n);
for (int i = 1; i <= n; i ++)
{
read(s[i]); read(t[i]);
}
int fg = s[1] * 3, now = 0;
for (int i = 1; i <= n; i ++)
{
if (t[i] > fg)
{
puts("impossible");
return 0;
}
pre[i] = now;
int tt = t[i] + (s[i + 1] - t[i]) * 3;
if (tt > fg)
{
fg = tt;
now = i;
}
}
now = n;
while (now)
{
ls ++;
x[ls] = t[pre[now]];
y[ls] = s[pre[now] + 1] - 1;
int p = x[ls] + (y[ls] - x[ls]) * 3 - t[now];
y[ls] -= p / 3;
now = pre[now];
}
prt(ls); putchar('\n');
for (int i = ls; i >= 1; i --)
{
prt(x[i]); putchar(' '); prt(y[i]); putchar('\n');
}
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...