AT_arc179_c [ARC179C] Beware of Overflow
题目描述
[problemUrl]: https://atcoder.jp/contests/arc179/tasks/arc179_c
本题为**交互式问题**(你的程序将与评测系统通过输入输出进行交互)。
给定一个正整数 $N$。
评测系统隐藏了一个正整数 $R$ 以及 $N$ 个整数 $A_1,A_2,\dots,A_N$。这里保证 $|A_i|\leq R$,且 $\left|\displaystyle\sum_{i=1}^{N}A_i\right|\leq R$。
有一个只能写入绝对值不超过 $R$ 的整数的黑板,初始时黑板上没有任何内容。
评测系统会依次将 $A_1,A_2,\dots,A_N$ 按顺序写到黑板上。你需要让黑板上最终只剩下一个值 $\displaystyle\sum_{i=1}^{N}A_i$。
你无法直接得知 $R$ 和 $A_i$ 的值,但你可以与评测系统进行最多 $25000$ 次的如下交互。
对于正整数 $i$,第 $i$ 次写入黑板的整数记为 $X_i$。特别地,对于 $i=1,2,\dots,N$,有 $X_i=A_i$。
每次交互,你可以指定两个不同的正整数 $i,j$,并选择以下操作之一:
- 让评测系统帮你做加法。评测系统会将黑板上的 $X_i,X_j$ 擦除,并新写入 $X_i+X_j$。
- 要求 $|X_i+X_j|\leq R$。
- 让评测系统帮你做大小比较。评测系统会告诉你 $X_i
输入格式
本题为交互式问题(你的程序将与评测系统通过输入输出进行交互)。
首先,从标准输入读取 $N$。
> $N$
接下来,重复进行交互,直到黑板上只剩下一个值 $\displaystyle\sum_{i=1}^{N}A_i$。
当你需要让评测系统帮你做加法时,按以下格式输出到标准输出,末尾需换行。这里 $i,j$ 是不同的正整数。
> + $i$ $j$
评测系统的响应如下格式从标准输入给出:
> $P$
其中 $P$ 为整数,
- 若 $P\geq N+1$,表示 $X_i+X_j$ 的值已写入黑板,并且这是第 $P$ 次写入。
- 若 $P=-1$,表示 $i,j$ 不满足约束,或交互次数超过 $25000$ 次。
当你需要让评测系统帮你做大小比较时,按以下格式输出到标准输出,末尾需换行。这里 $i,j$ 是不同的正整数。
> ? $i$ $j$
评测系统的响应如下格式从标准输入给出:
> $Q$
其中 $Q$ 为整数,
- $Q=1$ 表示 $X_i
输出格式
无
说明/提示
### 约束条件
- $2\leq N\leq 1000$
- $1\leq R\leq 10^9$
- $|A_i|\leq R$
- $\left|\displaystyle\sum_{i=1}^{N}A_i\right|\leq R$
- $N,R,A_i$ 均为整数。
### 注意事项
- **每次输出后请务必刷新输出缓冲区,否则可能会导致评测结果为 TLE。**
- 输出答案后(或收到 `-1` 后)请立即终止程序,否则评测结果不确定。
- 多余的换行会被视为输出格式错误,请注意。
### 输入输出样例
以 $N=3,R=10,A_1=-1,A_2=10,A_3=1$ 为例,交互过程如下:
输入输出说明
`3` 首先给出整数 $N$。
`? 1 2` 进行一次大小比较。
`1` 因为 $X_1 < X_2\ (-1 < 10)$,评测系统返回 $1$。
`+ 1 3` 进行一次加法操作。
`4` 评测系统将 $X_1=-1,X_3=1$ 从黑板上擦除,并写入 $X_1+X_3=0$,这是第 $4$ 次写入。
`+ 2 4` 进行一次加法操作。
`5` 评测系统将 $X_2=10,X_4=0$ 从黑板上擦除,并写入 $X_2+X_4=10$,这是第 $5$ 次写入。
`!` 黑板上只剩下 $\displaystyle\sum_{i=1}^{N}A_i$,向评测系统报告。
由 ChatGPT 4.1 翻译