Codeforces Round 649 (Div. 2) |
---|
Закончено |
Это интерактивная задача!
У Ехаба есть загаданная перестановка $$$p$$$ длины $$$n$$$, состоящая из элементов от $$$0$$$ до $$$n-1$$$. По какой-то причине вы хотите выяснить перестановку. Для этого вы можете спросить у Ехаба $$$2$$$ разных индекса $$$i$$$ и $$$j$$$, и он ответит $$$(p_i|p_j)$$$, где $$$|$$$ обозначает операцию побитового ИЛИ.
У Ехаба есть достаточно свободного времени, чтобы ответить на $$$4269$$$ вопросов, и, несмотря на то, что ему несложно отвечать на так много вопросов, ему лень играть в ваши глупые игры, поэтому он заранее зафиксирует перестановку и не изменит ее в зависимости от ваших запросов. Можете ли вы угадать перестановку?
В единственной строке записано целое число $$$n$$$ $$$(3 \le n \le 2048)$$$ — длина перестановки.
Чтобы задать вопрос, выведите "? $$$i$$$ $$$j$$$" (без кавычек, $$$i \neq j$$$) Затем вы должны считать ответ, который будет равен $$$(p_i|p_j)$$$.
Если мы ответим $$$-1$$$ вместо правильного ответа, это означает, что вы превысили количество запросов или сделали неверный запрос.
Завершите программу сразу после получения $$$-1$$$, и вы увидите вердикт Неправильный ответ. В противном случае вы можете получить произвольный вердикт, потому что ваше решение будет продолжать читать из закрытого потока.
Чтобы дать ответ, выведите "! $$$p_1$$$ $$$p_2$$$ $$$\ldots$$$ $$$p_n$$$" (без кавычек). Заметьте, что вывод ответа не считается одним из $$$4269$$$ запросов.
После вывода запроса не забудьте вывести перевод строки, и сбросить буфер вывода. В противном случае вы получите вердикт Решение «зависло». Для сброса буфера используйте:
Взломы:
Первая строка должна содержать целое число $$$n$$$ ($$$3 \le n \le 2^{11}$$$) — длину перестановки $$$p$$$.
Вторая строка должна содержать $$$n$$$ целых чисел, разделенных пробелами $$$p_1$$$, $$$p_2$$$, $$$\ldots$$$, $$$p_n$$$ ($$$0 \le p_i < n$$$) — элементы перестановки $$$p$$$.
3 1 3 2
? 1 2 ? 1 3 ? 2 3 ! 1 0 2
В первом примере перестановка равна $$$[1,0,2]$$$. Вы начинаете с вопроса $$$p_1|p_2$$$, а Ехаб отвечает $$$1$$$. Затем вы спрашиваете $$$p_1|p_3$$$, а Ехаб отвечает $$$3$$$. Наконец, вы спрашиваете о $$$p_2|p_3$$$, а Ехаб отвечает $$$2$$$. После этого вы угадываете перестановку.
Название |
---|