Codeforces Round 618 (Div. 1) |
---|
Закончено |
Это интерактивная задача.
Мы загадали перестановку $$$p_1, p_2, \dots, p_n$$$ чисел от $$$1$$$ до $$$n$$$, где $$$n$$$ четное. Вы можете угадать ее с помощью следующих запросов:
$$$?$$$ $$$k$$$ $$$a_1$$$ $$$a_2$$$ $$$\dots$$$ $$$a_k$$$.
В ответ, вы узнаете, правда ли, что среднее арифметическое элементов с индексами $$$a_1, a_2, \dots, a_k$$$ является целым числом. Другими словами, вы получите $$$1$$$ если $$$\frac{p_{a_1} + p_{a_2} + \dots + p_{a_k}}{k}$$$ является целым, и $$$0$$$ в противном случае.
Вы должны угадать перестановку. Вы можете задать не более $$$18n$$$ запросов.
Заметим, что перестановки $$$[p_1, p_2, \dots, p_k]$$$ и $$$[n + 1 - p_1, n + 1 - p_2, \dots, n + 1 - p_k]$$$ неразличимы. Поэтому, гарантируется, что $$$p_1 \le \frac{n}{2}$$$.
Отметим, что $$$p$$$ зафиксирована и не зависит от ваших запросов. Другими словами, интерактор не адаптивен.
Также вы не должны минимизировать количество запросов.
Первая строка содержит единственное целое число $$$n$$$ ($$$2 \le n \le 800$$$, $$$n$$$ четное).
Вы начинаете взаимодействие, считав $$$n$$$.
Чтобы задать вопрос об элементах на позициях $$$a_1, a_2, \dots, a_k$$$, в отдельной строке выведите
$$$?$$$ $$$k$$$ $$$a_1$$$ $$$a_2$$$ ... $$$a_k$$$
Числа в запросе должны удовлетворять условию $$$1 \le a_i \le n$$$, и все $$$a_i$$$ должны быть различными. Не забудьте сделать операцию 'flush', чтобы получить ответ.
В ответ, вы получите $$$1$$$ если $$$\frac{p_{a_1} + p_{a_2} + \dots + p_{a_k}}{k}$$$ является целым, и $$$0$$$ в противном случае.
В случае, если ваш запрос не соответствует требованиям, или вы задали более $$$18n$$$ запросов, программа выведет $$$-1$$$ и прекратит взаимодействие. Вы получите вердикт Неправильный ответ. Вам нужно завершить работу вашей программы, чтобы не получить другие вердикты.
Когда вы определили перестановку, выведите
$$$!$$$ $$$p_1$$$ $$$p_2$$$ ... $$$p_n$$$
После вывода запроса не забудьте вывести перевод строки и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
Формат взломов
Для взломов используйте следующий формат:
Первая строка должна содержать единственное целое число $$$n$$$ ($$$2 \le n \le 800$$$, $$$n$$$ четное).
В следующей строке выведите $$$n$$$ целых чисел $$$p_1, p_2, \dots, p_n$$$ — перестановку чисел от $$$1$$$ до $$$n$$$. $$$p_1 \le \frac{n}{2}$$$ должно выполняться.
2 1 2
? 1 2 ? 1 1 ! 1 2
Название |
---|