CF1425F Flamingoes of Mystery
题目描述
这是一个交互题。你需要在每次输出后立即刷新输出缓冲区。例如,在 C++ 中应使用函数 fflush(stdout),在 Java 中使用 System.out.flush(),在 Pascal 中使用 flush(output),在 Python 中使用 sys.stdout.flush()。
Chanek 先生想买一只火烈鸟来陪伴他农场里的鸡。在去宠物店之前,Chanek 先生先去参加了一个动物节,玩得很开心。结果发现有一个嘉年华游戏,奖品是一只火烈鸟。
有 $N$ 个神秘的笼子,编号从 $1$ 到 $N$。第 $i$ 个笼子里有 $A_i$ 只火烈鸟,$0 \leq A_i \leq 10^3$,$1 \leq i \leq N$。不过,游戏主持人把每个笼子里的火烈鸟数量保密。要赢得火烈鸟,Chanek 先生必须猜出每个笼子里的火烈鸟数量。
巧合的是,Chanek 先生有 $N$ 枚硬币。每枚硬币可以用来询问一次:编号从 $L$ 到 $R$ 的所有笼子里一共有多少只火烈鸟?其中 $L < R$。
输入格式
使用标准输入读取你每次询问的回复。
首先,评测器会给出一个整数 $N$,表示笼子的数量,也是 Chanek 先生拥有的硬币数,$3 \leq N \leq 10^3$。
对于你的每一次询问,评测器会返回一个整数,表示编号从 $L$ 到 $R$ 的所有笼子里火烈鸟的总数。
如果你的程序没有猜测火烈鸟数量,或者询问了其他问题,将会收到 “Wrong Answer” 的判定。当然,如果你的程序询问次数超过允许的次数,也会收到 “Wrong Answer”。
输出格式
要发起询问,你的程序必须使用标准输出。
你最多可以询问 $N$ 次。每次询问的格式为 "? L R",其中 $1 \leq L < R \leq N$。
当你准备猜测每个笼子的火烈鸟数量时,输出一行,以 "!" 开头,后接 $N$ 个整数,第 $i$ 个整数表示第 $i$ 个笼子里的火烈鸟数量。输出答案后,程序必须立即终止,否则会收到 “idle limit exceeded” 的判定。你只能猜测一次。
说明/提示
在样例输入中,正确的火烈鸟数量为 $[1, 4, 4, 6, 7, 8]$。
由 ChatGPT 4.1 翻译