308754: CF1570G. XOR Guessing

Memory Limit:0 MB Time Limit:0 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

XOR Guessing

题目描述

This is an interactive problem. Remember to flush your output while communicating with the testing program. You may use fflush(stdout) in C++, system.out.flush() in Java, stdout.flush() in Python or flush(output) in Pascal to flush the output. If you use some other programming language, consult its documentation. You may also refer to the guide on interactive problems: <https://codeforces.com/blog/entry/45307>. The jury picked an integer $ x $ not less than $ 0 $ and not greater than $ 2^{14} - 1 $ . You have to guess this integer. To do so, you may ask no more than $ 2 $ queries. Each query should consist of $ 100 $ integer numbers $ a_1 $ , $ a_2 $ , ..., $ a_{100} $ (each integer should be not less than $ 0 $ and not greater than $ 2^{14} - 1 $ ). In response to your query, the jury will pick one integer $ i $ ( $ 1 \le i \le 100 $ ) and tell you the value of $ a_i \oplus x $ (the bitwise XOR of $ a_i $ and $ x $ ). There is an additional constraint on the queries: all $ 200 $ integers you use in the queries should be distinct. It is guaranteed that the value of $ x $ is fixed beforehand in each test, but the choice of $ i $ in every query may depend on the integers you send. Output To give the answer, your program should print one line $ ! $ $ x $ with a line break in the end. After that, it should flush the output and terminate gracefully.

输入输出格式

输入格式


输出格式


To give the answer, your program should print one line $ ! $ $ x $ with a line break in the end. After that, it should flush the output and terminate gracefully. Interaction Before giving the answer, you may submit no more than $ 2 $ queries. To ask a query, print one line in the following format: $ ? $ $ a_1 $ $ a_2 $ ... $ a_{100} $ , where every $ a_j $ should be an integer from the range $ [0, 2^{14} - 1] $ . The line should be ended with a line break character. After submitting a query, flush the output and read the answer to your query — the value of $ a_i \oplus x $ for some $ i \in [1, 100] $ . No integer can be used in queries more than once. If you submit an incorrect query (or ask more than $ 2 $ queries), the answer to it will be one integer $ -1 $ . After receiving such an answer, your program should terminate immediately — otherwise you may receive verdict "Runtime error", "Time limit exceeded" or some other verdict instead of "Wrong answer".

输入输出样例

输入样例 #1

0
32

输出样例 #1

? 3 5 6
? 32 24 37
! 5

说明

The example of interaction is not correct — you should sumbit exactly $ 100 $ integers in each query. Everything else is correct. Hacks are forbidden in this problem.

Input

题意翻译

**这是一个交互题。** 有一个不小于 $0$ 且不大于 $2^{14} - 1$ 的整数 $x$,你需要通过以下方法猜出这个整数。 你可以提出最多 $2$ 个问题。每个问题由 $100$ 个不小于 $0$ 且不大于 $2^{14} - 1$ 的整数 $a_1$, $a_2$ , ..., $a_{100}$ 组成。对于每一次提问,机器会随机选出这 $100$ 个数中的一个数 $a_i$ 并告诉你 $a_i$ 和 $x$ 的异或值。另外,这 $200$ 个整数不能相同(如果你只提问了一次那就是这 $100$ 个整数不能相同)。 另外,每次打印 $100$ 个整数前应该先打印 "?",打印结果前应该先打印 "!"。

加入题单

算法标签: