#P15496. [ICPC 2025 APC] Minus Operator
[ICPC 2025 APC] Minus Operator
Description
The minus operator on binary values and is defined by if and ; otherwise, . Also, the syntax of an expression is defined as follows. Here, , parentheses, and the minus are terminal symbols, and is the start symbol.
$$\begin{aligned} E &::=\mathbf{x} \mid (E - E) \end{aligned}$$The judge program possesses an expression adhering to . The expression is hidden from you. At the start, you are only provided with the number of terminal symbols in the expression, denoted by .
Your task is to guess the expression by making a limited number of queries.
In a single query, you specify a binary string of length . The judge program then temporarily replaces each occurrence of the -th terminal symbol from the left with , for , and evaluates the replaced expression based on the definition of the minus operator. After that, the judge program returns the evaluated value to you, which is either or .
Interaction
The first line of input contains an integer (). After reading the integer, your program can start making queries. For each query, your program should write a line of the form "query ". Here, is a binary string of length . Each character of must be either or . In response, an input line containing the evaluated value becomes available.
Your program can make up to queries. If your program makes more than queries, it will be judged as "Wrong Answer."
When your program identifies the expression that the judge program possesses, it should write a line of the form "answer ", where is the expression. After that, the interaction stops and your program should terminate.
Under the constraints above, it can be shown that the expression can be uniquely identified.
Notes on interactive judging:
- The evaluation is non-adversarial, meaning that the expression is chosen in advance rather than in response to your queries.
- Do not forget to flush output buffers after writing. See the "Judging Details" document for details.
- You are provided with a command-line tool for local testing, together with input files corresponding to the sample interactions. You can download these files from DOMjudge. The tool has comments at the top to explain its use.
3
0
query 111
answer ((x-x)-x)
4
0
1
query 0000
query 1001
answer ((x-x)-(x-x))
Hint
Explanation for the sample interaction #1
When , there are only two possible expressions: or . For a query , the evaluated values for these expressions are,
- , and
- .
In this example, the judge program returns , indicating that the first expression is the correct one.
京公网安备 11011102002149号