测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A14518. 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.
上一题 去做题 下一题