Codeforces Round 559 (Div. 1)
E
Strange device
Codeforces
3400
原题
← DF →
翻译中…

It is an interactive problem.

翻译中…

Vasya enjoys solving quizzes. He found a strange device and wants to know how it works.

翻译中…

This device encrypted with the tree (connected undirected graph without cycles) with $n$ vertices, numbered with integers from $1$ to $n$. To solve this quiz you should guess this tree.

翻译中…

Fortunately, this device can make one operation, using which you should guess the cipher. You can give the device an array $d_1, d_2, \ldots, d_n$ of non-negative integers. On the device, there are $n$ lamps, $i$-th of them is connected with $i$-th vertex of the tree. For all $i$ the light will turn on the $i$-th lamp, if there exist such vertex of the tree with number $j \neq i$ that $dist(i, j) \leq d_j$. Let's define $dist(i, j)$ as the distance between vertices $i$ and $j$ in tree or number of edges on the simple path between vertices $i$ and $j$.

翻译中…

Vasya wants to solve this quiz using $\leq 80$ operations with the device and guess the tree. Help him!

翻译中…

Interaction

翻译中…

In the beginning, your program should read one integer $n$ — the number of vertices of the tree which encrypts the device ($2 \leq n \leq 1000$).

翻译中…

After that, you can make several operations in the following format. To do operation print a symbol"?" (without quotes) and $n$ integers $d_1, d_2, \ldots, d_n$, separated by spaces after it. Please note, that for all $i$ you can only use the numbers, satisfying the inequality $0 \leq d_i \lt n$. After that, you should read a string $s$ with length $n$, consisting of symbols "0" and "1" (without quotes). For all $i$ the symbol $s_i$ is equal to "0", if the lamp on the device, connected with $i$-th vertex of the tree is switched off and "1" otherwise.

翻译中…

After several operations, you should print guessed tree. To do it print the only symbol "!" (without quotes). In the next $n-1$ lines print $2$ integers $a_i$, $b_i$ — indexes of the vertices connected by $i$-th edge of the tree. This numbers should satisfy the conditions $1 \leq a_i, b_i \leq n$ and $a_i \neq b_i$. This edges should form a tree, which is equal to the hidden tree. After that, your program should terminate.

翻译中…

It is guaranteed, that in each test the tree is fixed before and won't change depending on your program's operations.

翻译中…

Your program can make from $0$ to $80$ operations with the device and after that guess the tree equal with the hidden.

翻译中…

If your program will make more than $80$ operations it can get any verdict, because it will continue reading from closed input. If your program will make operation or print the answer in the incorrect format, it can get any verdict too. Be careful.

翻译中…

Don't forget to flush the output after printing questions and answers.

翻译中…

To flush the output, you can use:

翻译中…
  • fflush(stdout) in C++.
  • System.out.flush() in Java.
  • stdout.flush() in Python.
  • flush(output) in Pascal.
  • See the documentation for other languages.
翻译中…

Hacks:

翻译中…

The first line should contain one integer $n$ — the number of vertices in the tree ($2 \leq n \leq 1000$). Next $n-1$ lines should contain $2$ integers $a_i$, $b_i$ — indexes of the vertices connected by $i$-th edge of the tree ($1 \leq a_i, b_i \leq n$, $a_i \neq b_i$). All edges should form a tree. Be careful, extra spaces or line breaks are not allowed.

翻译中…

Note

翻译中…

It is a picture of the tree which encrypt the device from the first test:

翻译中…

image

翻译中…

It is a table of pairwise distances between vertices in this tree:

翻译中…

image

翻译中…
  • If you make operation where $d = [0, 0, 0, 0, 0]$, no lamp will switch on, because $dist(i, j) \gt 0$ for all $i \neq j$.
  • If you make operation where $d = [1, 1, 2, 0, 2]$, all lamps except the lamp connected with the $3$-rd vertex will switch on. For example, lamp connected with the $1$-st vertex will switch on, because $dist(1, 5) = 1 \leq 2 = d_5$.
  • If you make operation where $d = [0, 0, 0, 1, 0]$, all lamps except lamps connected with the $4$-th and $5$-th vertices will switch on.
  • If you make operation where $d = [0, 1, 0, 0, 1]$, only lamps connected with the $1$-st and $4$-th vertices will switch on.
翻译中…

样例

Input #1
5
00000
11011
11100
10010
Output #1
? 0 0 0 0 0
? 1 1 2 0 2
? 0 0 0 1 0
? 0 1 0 0 1
!
4 2
1 5
3 4
4 1
InputCopy OutputCopy
题目信息
题号
1158E
时间限制
1 s
内存限制
256 MB
标签
二分
交互题
数学
树

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。