CF1570G XOR Guessing

题目描述

这是一个交互题。在与测试程序通信时,请记得刷新输出。你可以在 C++ 中使用 fflush(stdout),在 Java 中使用 system.out.flush(),在 Python 中使用 stdout.flush(),在 Pascal 中使用 flush(output) 来刷新输出。如果你使用其他编程语言,请查阅相关文档。你也可以参考关于交互题的指南:。 评测程序选择了一个整数 $x$,满足 $0 \le x \le 2^{14} - 1$。你需要猜出这个整数。 为此,你最多可以询问 $2$ 次。每次询问应包含 $100$ 个整数 $a_1, a_2, \ldots, a_{100}$(每个整数都应满足 $0 \le a_j \le 2^{14} - 1$)。作为回应,评测程序会选择一个整数 $i$($1 \le i \le 100$),并告诉你 $a_i \oplus x$(即 $a_i$ 与 $x$ 的按位异或结果)。对于所有 $200$ 个用于询问的整数,要求它们互不相同。 保证每次测试中 $x$ 的值在一开始就已确定,但每次选择 $i$ 的方式可能依赖于你发送的整数。

输入格式

无输入。

输出格式

为了给出答案,你的程序应输出一行:`! x`,并以换行符结尾。之后应刷新输出并正常结束程序。

说明/提示

在给出答案之前,你最多可以提交 $2$ 次询问。每次询问应输出一行,格式为:`? a_1 a_2 \ldots a_{100}`,其中每个 $a_j$ 是 $[0, 2^{14} - 1]$ 范围内的整数,并且每个整数在所有询问中只能出现一次。 如果你提交了不合法的询问(或询问次数超过 $2$ 次),你会收到 $-1$ 作为回应。在收到这样的回应后,你的程序应立即终止,否则你可能会收到“运行时错误”、“超时”或其他非“答案错误”的判决。 # 交互说明 在给出答案之前,你最多可以提交 $2$ 次询问。每次询问应包含恰好 $100$ 个整数。 # 提示 示例交互并不规范——你每次询问必须提交恰好 $100$ 个整数。其他部分均正确。 本题禁止 Hack。 由 ChatGPT 4.1 翻译