Codeforces Round 987 (Div. 2) |
---|
Закончено |
Это интерактивная задача.
Вернувшись после отдыха на Золотом побережье Австралии, Пенчик забыл привезти домой подарки для своей домашней утки Дуонг Кан! Но, возможно, прекрасная задача, созданная в глубоких раздумьях на живописных пляжах, станет идеальным сувениром.
Существует скрытая перестановка$$$^{\text{∗}}$$$ $$$p$$$ длины $$$n$$$, где $$$n$$$ — четное. Вам разрешается задавать следующие вопросы:
Найдите индексы двух медиан в перестановке $$$p$$$, используя не более $$$80$$$ запросов.
Обратите внимание, что интерактор является неадаптивным. Это означает, что перестановка $$$p$$$ фиксирована изначально и не будет меняться в зависимости от ваших запросов.
$$$^{\text{∗}}$$$Перестановкой длины $$$n$$$ является массив, состоящий из $$$n$$$ различных целых чисел от $$$1$$$ до $$$n$$$ в произвольном порядке. Например, $$$[2,3,1,5,4]$$$ — перестановка, но $$$[1,2,2]$$$ не перестановка ($$$2$$$ встречается в массиве дважды) и $$$[1,3,4]$$$ тоже не перестановка ($$$n=3$$$, но в массиве встречается $$$4$$$).
$$$^{\text{†}}$$$Последовательность $$$a$$$ является подпоследовательностью $$$b$$$, если $$$a$$$ может быть получена из $$$b$$$ удалением нескольких (возможно, ни одного или всех) элементов на произвольных позициях.
$$$^{\text{‡}}$$$Две медианы массива $$$a$$$ четной длины $$$k$$$ определяются как $$$\frac{k}{2}$$$-й и $$$\left(\frac{k}{2} + 1\right)$$$-й наименьший элемент в массиве (в нумерации с $$$1$$$).
Каждый тест состоит из нескольких наборов входных данных. В первой строке находится одно целое число $$$t$$$ ($$$1 \le t \le 1000$$$) — количество наборов входных данных. Далее следует описание наборов входных данных.
Единственная строка каждого набора входных данных содержит одно целое число $$$n$$$ ($$$6 \le n \le 100$$$, $$$n$$$ — четное) — длина скрытой перестановки $$$p$$$.
Прочитав целое число $$$n$$$ для текущего набора входных данных, вы должны начать взаимодействие и вывести ответ до чтения значения $$$n$$$ до следующего набора.
Гарантируется, что сумма значений $$$n$$$ по всем наборам входных данных не превосходит $$$10^4$$$.
Чтобы сделать запрос, выведите одну строку в следующем формате:
После каждого запроса вы должны прочитать строку, содержащую два целых числа $$$m_1$$$ и $$$m_2$$$ ($$$1 \le m_1 < m_2 \le n$$$) — значения двух медиан в массиве $$$[p_{x_1}, p_{x_2}, \ldots, p_{x_{k-1}}, p_{x_k}]$$$.
Вы можете сделать не более $$$80$$$ таких запросов в каждом наборе входных данных.
Чтобы дать окончательный ответ, выведите одну строку в следующем формате:
Обратите внимание, что порядок вывода $$$i_1$$$ и $$$i_2$$$ не имеет значения. Другими словами, ваше решение будет верным, если $$$p_{i_1} = \frac{n}{2}$$$ и $$$p_{i_2} = \frac{n}{2} + 1$$$, или $$$p_{i_1} = \frac{n}{2} + 1$$$ и $$$p_{i_2} = \frac{n}{2}$$$.
После вывода каждого запроса не забудьте вывести перевод строки и сбросить буфер вывода$$$^{\text{∗}}$$$. В противном случае вы получите вердикт Решение «зависло».
На любом шаге взаимодействия, если вы считали $$$-1$$$ вместо корректных данных, ваше решение должно немедленно завершиться. Это означает, что ваше решение получит вердикт Неправильный ответ из-за некорректного запроса или любой другой ошибки. Если программа не завершится, вы можете получить любой вердикт, так как ваша программа продолжит чтение из закрытого потока.
Формат взломов
Для взломов используйте следующий формат.
Первая строка должна содержать $$$t$$$ — количество наборов входных данных.
Первая строка каждого набора входных данных должна содержать одно целое число $$$n$$$.
Вторая строка каждого набора входных данных должна содержать перестановку $$$p_1, p_2, \ldots, p_n$$$ длины $$$n$$$.
В качестве примера формата взлома приведём тест из примера:
2
6
6 2 3 5 1 4
10
10 9 8 7 6 5 4 3 2 1
$$$^{\text{∗}}$$$Чтобы сбросить буфер вывода, используйте:
2 6 3 4 3 4 2 3 10 3 4 6 7
? 6 1 2 3 4 5 6 ? 4 3 6 1 5 ? 4 3 6 2 5 ! 3 6 ? 6 1 3 7 8 9 10 ? 8 1 2 3 4 5 6 7 8 ! 6 5
В первом наборе входных данных скрытая перестановка равна $$$p = [6, 2, 3, 5, 1, 4]$$$.
Ответ «! 3 6» верен, так как $$$p_3 = 3$$$ и $$$p_6 = 4$$$.
Во втором наборе входных данных скрытая перестановка равна $$$p = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]$$$.
Ответ «! 5 6» верен, так как $$$p_5 = 6$$$ и $$$p_6 = 5$$$.
Название |
---|