Hello 2022 |
---|
Закончено |
Это интерактивная задача.
Жюри загадало перестановку $$$p$$$ длины $$$n$$$ и предлагает Вам её угадать. Для этого жюри создало перестановку $$$q$$$ длины $$$n$$$. Изначально $$$q$$$ является тождественной ($$$q_i = i$$$ для всех $$$i$$$).
За один запрос Вы можете узнать $$$q_i$$$ для любого $$$i$$$. После каждого Вашего запроса жюри будет изменять $$$q$$$ следующим образом:
Вы можете сделать не более $$$2n$$$ запросов, чтобы угадать перестановку $$$p$$$.
В первой строке задано одно целое число $$$t$$$ ($$$1 \leq t \leq 1000$$$) — количество тестовых случаев.
Взаимодействие Вашей программы с программой жюри в каждом тестовом случае начинается со считывания числа $$$n$$$ ($$$1 \leq n \leq 10^4$$$) — длины перестановок $$$p$$$ и $$$q$$$.
Чтобы узнать значение $$$q_i$$$, выведите запрос в формате $$$?$$$ $$$i$$$ ($$$1 \leq i \leq n$$$). После этого, программа жюри выведет значение $$$q_i$$$.
Вы можете сделать не более $$$2n$$$ запросов. В ответ на некорректный запрос программа жюри выведет $$$0$$$, и после этого Вы должны сразу завершить программу, чтобы получить вердикт Неправильный ответ.
Когда Вы будете готовы сообщить $$$p$$$, выведите $$$p$$$ в формате $$$!$$$ $$$p_1$$$ $$$p_2$$$ $$$\ldots$$$ $$$p_n$$$. После этого следует приступать к обработке следующего тестового случая или завершить программу, если это был последний тестовый случай. Вывод перестановки не считается как один из $$$2n$$$ запросов.
После вывода запроса не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
Гарантируется, что сумма $$$n$$$ по всем тестовым случаям не превосходит $$$10^4$$$. Интерактор в этой задаче не является адаптивным.
Взломы:
Чтобы сделать взлом, используйте следующий формат:
В первой строке находится одно целое число $$$t$$$ — количество тестовых случаев.
Описание каждого тестового случая должно состоять из двух строк. В первой строке находится число $$$n$$$ — длина перестановок $$$p$$$ и $$$q$$$. Во второй строке находятся $$$n$$$ чисел $$$p_1, p_2, \ldots, p_n$$$ — перестановка, которую должно загадать жюри в данном тестовом случае.
2 4 3 2 1 4 2 4 4
? 3 ? 2 ? 4 ! 4 2 1 3 ? 2 ? 3 ? 2 ! 1 3 4 2
В первом тестовом случае жюри загадало перестановку $$$p = [4, 2, 1, 3]$$$.
Перед первым Вашим запросом $$$q = [1, 2, 3, 4]$$$, ответ на запрос будет равен $$$q_3 = 3$$$.
Перед вторым Вашим запросом $$$q = [4, 2, 1, 3]$$$, ответ на запрос будет равен $$$q_2 = 2$$$.
Перед третьим Вашим запросом $$$q = [3, 2, 4, 1]$$$, ответ на запрос будет равен $$$q_4 = 1$$$.
Во втором тестовом случае жюри загадало перестановку $$$p = [1, 3, 4, 2]$$$.
Пустые строки в примере даны только для улучшения читаемости. В тестирующей системе программа жюри не будет выводить пустые строки.
Название |
---|