CF1207E XOR Guessing
Description
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: .
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.
Input Format
N/A
Output Format
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".
Explanation/Hint
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.