| Codeforces Round 1058 (Div. 1) |
|---|
| Закончено |
Это интерактивная задача.
Существует секретная последовательность $$$a_1, a_2, \ldots, a_{2n-1},a_{2n}$$$, которая содержит каждое целое число от $$$1$$$ до $$$n$$$ ровно дважды.
Ваша задача состоит в том, чтобы угадать последовательность, используя запросы следующего типа:
Мы определяем $$$\operatorname{MAD}$$$ (максимальный дубликат) целочисленной последовательности как наибольшее целое число, которое появляется как минимум дважды. В частности, если нет числа, которое появляется как минимум дважды, значение $$$\operatorname{MAD}$$$ равно $$$0$$$. Вот некоторые примеры:
Определите секретную последовательность используя не более $$$3n$$$ запросов.
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 3000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Первая строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$2 \le n \le 300$$$).
Гарантируется, что сумма $$$n^2$$$ по всем наборам входных данных не превосходит $$$10^5$$$.
После того как вы прочитаете эту строку ввода, взаимодействие начинается с вашего первого запроса.
Чтобы сделать запрос, выведите строку (без кавычек) в следующем формате:
Здесь индексы $$$j_1 , j_2 , \ldots , j_k$$$, которые вы выбрали, должны быть попарно различными.
Затем, после каждого запроса, прочитайте одно целое число — ответ на ваш запрос.
Вы можете сделать не более $$$3n$$$ запросов такого типа.
Если ваша программа нашла последовательность $$$a$$$, выведите строку (без кавычек) в следующем формате:
Обратите внимание, что вывод ответа не учитывается в лимите запросов.
После этого переходите к следующему набору входных данных или завершайте исполнение программы, если это последний набор входных данных.
Интерактор в этой задаче не адаптивен. Другими словами, последовательность $$$a$$$ не меняется в процессе взаимодействия.
Если вы сделаете более $$$3n$$$ запросов во время взаимодействия, ваша программа должна немедленно завершиться, и вы получите вердикт Неправильный ответ. В противном случае вы можете получить произвольный вердикт, потому что ваше решение продолжит читать из закрытого потока.
После вывода каждой строки не забудьте вывести конец строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса используйте:
Взломы
Чтобы совершить взлом, используйте следующий формат:
Первая строка должна содержать количество наборов входных данных $$$t$$$ ($$$1 \leq t \leq 3000$$$).
Первая строка каждого набора входных данных должна содержать целое число $$$n$$$ ($$$2 \leq n \leq 300$$$).
Следующая строка должна содержать $$$2n$$$ целых чисел $$$a_1,a_2,\ldots,a_{2n}$$$ ($$$1 \leq a_i \leq n$$$). Каждое число от $$$1$$$ до $$$n$$$ должно появляться ровно дважды.
Сумма $$$n^2$$$ по всем наборам входных данных не должна превосходить $$$10^5$$$.
Например, текст взлома, соответствующий примеру из условия, выглядит следующим образом:
2
2
2 2 1 1
2
1 2 1 2
2 2 2 0 1 2 0 1 1
? 2 2 1 ? 2 1 3 ? 3 1 3 4 ! 2 2 1 1 ? 2 1 2 ? 2 1 3 ? 3 1 3 4 ! 1 2 1 2
В первом наборе входных данных скрытая последовательность $$$a=[2,2,1,1]$$$.
Для запроса «? 2 2 1», жюри возвращает $$$2$$$, потому что $$$\operatorname{MAD}([a_2, a_1]) = \operatorname{MAD}([2, 2]) = 2$$$.
Для запроса «? 2 1 3», жюри возвращает $$$0$$$, потому что $$$\operatorname{MAD}([a_1, a_3]) = \operatorname{MAD}([2, 1]) = 0$$$.
Для запроса «? 3 1 3 4», жюри возвращает $$$1$$$, потому что $$$\operatorname{MAD}([a_1, a_3, a_4]) = \operatorname{MAD}([2 ,1, 1]) = 1$$$.
Обратите внимание, что пример взаимодействия предназначен только для понимания условий и не гарантирует нахождение уникальной последовательности $$$a$$$.
| Название |
|---|


