#ATarc179c. [ARC179C] Beware of Overflow

[ARC179C] Beware of Overflow

题目描述

本题为交互式问题(你的程序将与评测系统通过输入输出进行交互)。

给定一个正整数 NN

评测系统隐藏了一个正整数 RR 以及 NN 个整数 A1,A2,,ANA_1,A_2,\dots,A_N。这里保证 AiR|A_i|\leq R,且 i=1NAiR\left|\displaystyle\sum_{i=1}^{N}A_i\right|\leq R

有一个只能写入绝对值不超过 RR 的整数的黑板,初始时黑板上没有任何内容。

评测系统会依次将 A1,A2,,ANA_1,A_2,\dots,A_N 按顺序写到黑板上。你需要让黑板上最终只剩下一个值 i=1NAi\displaystyle\sum_{i=1}^{N}A_i

你无法直接得知 RRAiA_i 的值,但你可以与评测系统进行最多 2500025000 次的如下交互。

对于正整数 ii,第 ii 次写入黑板的整数记为 XiX_i。特别地,对于 i=1,2,,Ni=1,2,\dots,N,有 Xi=AiX_i=A_i

每次交互,你可以指定两个不同的正整数 i,ji,j,并选择以下操作之一:

  • 让评测系统帮你做加法。评测系统会将黑板上的 Xi,XjX_i,X_j 擦除,并新写入 Xi+XjX_i+X_j
    • 要求 Xi+XjR|X_i+X_j|\leq R
  • 让评测系统帮你做大小比较。评测系统会告诉你 Xi<XjX_i<X_j 是否成立。

但每次交互开始时,i,ji,j 对应的整数必须仍在黑板上。

通过适当的交互操作,在所有交互结束后,使黑板上只剩下一个值 i=1NAi\displaystyle\sum_{i=1}^{N}A_i

RRAiA_i 在程序与评测系统交互前就已确定。

输入格式

本题为交互式问题(你的程序将与评测系统通过输入输出进行交互)。

首先,从标准输入读取 NN

NN

接下来,重复进行交互,直到黑板上只剩下一个值 i=1NAi\displaystyle\sum_{i=1}^{N}A_i

当你需要让评测系统帮你做加法时,按以下格式输出到标准输出,末尾需换行。这里 i,ji,j 是不同的正整数。

  • ii jj

评测系统的响应如下格式从标准输入给出:

PP

其中 PP 为整数,

  • PN+1P\geq N+1,表示 Xi+XjX_i+X_j 的值已写入黑板,并且这是第 PP 次写入。
  • P=1P=-1,表示 i,ji,j 不满足约束,或交互次数超过 2500025000 次。

当你需要让评测系统帮你做大小比较时,按以下格式输出到标准输出,末尾需换行。这里 i,ji,j 是不同的正整数。

? ii jj

评测系统的响应如下格式从标准输入给出:

QQ

其中 QQ 为整数,

  • Q=1Q=1 表示 Xi<XjX_i<X_j 成立。
  • Q=0Q=0 表示 Xi<XjX_i<X_j 不成立。
  • Q=1Q=-1 表示 i,ji,j 不满足约束,或交互次数超过 2500025000 次。

无论是加法还是比较操作,只要评测系统的响应为 1-1,你的程序就已被判为不正确。此时,请立即终止程序。

当黑板上只剩下一个值 i=1NAi\displaystyle\sum_{i=1}^{N}A_i 时,请按以下格式向评测系统报告。此操作不计入交互次数。之后,请立即终止程序。

!

如果你的输出不符合上述任一格式,评测系统会返回 -1

-1

此时也请立即终止程序。

输出格式

说明/提示

约束条件

  • 2N10002\leq N\leq 1000
  • 1R1091\leq R\leq 10^9
  • AiR|A_i|\leq R
  • i=1NAiR\left|\displaystyle\sum_{i=1}^{N}A_i\right|\leq R
  • N,R,AiN,R,A_i 均为整数。

注意事项

  • 每次输出后请务必刷新输出缓冲区,否则可能会导致评测结果为 TLE。
  • 输出答案后(或收到 -1 后)请立即终止程序,否则评测结果不确定。
  • 多余的换行会被视为输出格式错误,请注意。

输入输出样例

N=3,R=10,A1=1,A2=10,A3=1N=3,R=10,A_1=-1,A_2=10,A_3=1 为例,交互过程如下:

输入输出说明
3 首先给出整数 NN
? 1 2 进行一次大小比较。
1 因为 X1<X2 (1<10)X_1 < X_2\ (-1 < 10),评测系统返回 11
+ 1 3 进行一次加法操作。
4 评测系统将 X1=1,X3=1X_1=-1,X_3=1 从黑板上擦除,并写入 X1+X3=0X_1+X_3=0,这是第 44 次写入。
+ 2 4 进行一次加法操作。
5 评测系统将 X2=10,X4=0X_2=10,X_4=0 从黑板上擦除,并写入 X2+X4=10X_2+X_4=10,这是第 55 次写入。
! 黑板上只剩下 i=1NAi\displaystyle\sum_{i=1}^{N}A_i,向评测系统报告。

由 ChatGPT 4.1 翻译