Codeforces Round 716 (Div. 2)
E
Baby Ehab's Hyper Apartment
Codeforces
2700
原题
← D→
翻译中…

This is an interactive problem.

翻译中…

Baby Ehab loves crawling around his apartment. It has $n$ rooms numbered from $0$ to $n-1$. For every pair of rooms, $a$ and $b$, there's either a direct passage from room $a$ to room $b$, or from room $b$ to room $a$, but never both.

翻译中…

Baby Ehab wants to go play with Baby Badawy. He wants to know if he could get to him. However, he doesn't know anything about his apartment except the number of rooms. He can ask the baby sitter two types of questions:

翻译中…
  • is the passage between room $a$ and room $b$ directed from $a$ to $b$ or the other way around?
  • does room $x$ have a passage towards any of the rooms $s_1$, $s_2$, ..., $s_k$?
翻译中…

He can ask at most $9n$ queries of the first type and at most $2n$ queries of the second type.

翻译中…

After asking some questions, he wants to know for every pair of rooms $a$ and $b$ whether there's a path from $a$ to $b$ or not. A path from $a$ to $b$ is a sequence of passages that starts from room $a$ and ends at room $b$.

翻译中…

Input

翻译中…

The first line contains an integer $t$ ($1 \le t \le 30$) — the number of test cases you need to solve.

翻译中…

Then each test case starts with an integer $n$ ($4 \le n \le 100$) — the number of rooms.

翻译中…

The sum of $n$ across the test cases doesn't exceed $500$.

翻译中…

Output

翻译中…

To print the answer for a test case, print a line containing "3", followed by $n$ lines, each containing a binary string of length $n$. The $j$-th character of the $i$-th string should be $1$ if there's a path from room $i$ to room $j$, and $0$ if there isn't. The $i$-th character of the $i$-th string should be $1$ for each valid $i$.

翻译中…

After printing the answer, we will respond with a single integer. If it's $1$, you printed a correct answer and should keep solving the test cases (or exit if it is the last one). If it's $-1$, you printed a wrong answer and should terminate to get Wrong answer verdict. Otherwise, you can get an arbitrary verdict because your solution will continue to read from a closed stream.

翻译中…

Interaction

翻译中…

To ask a question of the first type, use the format:

翻译中…
  • $1$ $a$ $b$ ($0 \le a,b \le n-1$, $a \neq b$).
  • we will answer with $1$ if the passage is from $a$ to $b$, and $0$ if it is from $b$ to $a$.
  • you can ask at most $9n$ questions of this type in each test case.
翻译中…

To ask a question of the second type, use the format:

翻译中…
  • $2$ $x$ $k$ $s_1$ $s_2$ ... $s_k$ ($0 \le x,s_i \le n-1$, $0 \le k \lt n$, $x \neq s_i$, elements of $s$ are pairwise distinct).
  • we will answer with $1$ if there's a passage from $x$ to any of the rooms in $s$, and $0$ otherwise.
  • you can ask at most $2n$ questions of this type in each test case.
翻译中…

If we answer with $-1$ instead of a valid answer, that means you exceeded the number of queries or made an invalid query. Exit immediately after receiving $-1$ and you will see Wrong answer verdict. Otherwise, you can get an arbitrary verdict because your solution will continue to read from a closed stream.

翻译中…

After printing a query, do not forget to output end of line and flush the output. Otherwise, you will get Idleness limit exceeded. To do this, use:

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

Hacks:

翻译中…

The first line should contain an integer $t$ — the number of test cases.

翻译中…

The first line of each test case should contain an integer $n$ ($4 \le n \le 100$) — the number of rooms.

翻译中…

Each of the next $n$ lines should contain a binary string of length $n$. The $j$-th character of the $i$-th string should be $1$ if there's a passage from room $i$ to room $j$, $0$ otherwise. The $i$-th character of the $i$-th string should be $0$.

翻译中…

Note

翻译中…

In the given example:

翻译中…

image

翻译中…

The first query asks whether there's a passage from room $3$ to any of the other rooms.

翻译中…

The second query asks about the direction of the passage between rooms $0$ and $1$.

翻译中…

After a couple other queries, we concluded that you can go from any room to any other room except if you start at room $3$, and you can't get out of this room, so we printed the matrix:

翻译中…

1111
1111
1111
0001

翻译中…

The interactor answered with $1$, telling us the answer is correct.

翻译中…

样例

Input #1
1
4

0

0

1

1

1
Output #1
2 3 3 0 1 2

1 0 1

1 0 2

2 2 1 1

3
1111
1111
1111
0001
InputCopy OutputCopy
题目信息
题号
1514E
时间限制
1 s
内存限制
256 MB
标签
二分
图论
交互题
排序
双指针

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