VK Cup 2018 - Раунд 3 |
---|
Закончено |
Витя выяснил, что ответ на Главный вопрос жизни, Вселенной и всего такого заключается не в числе 54 42, а в возрастающей последовательности положительных целых чисел $$$a_1, \ldots, a_n$$$. Чтобы не раскрывать сенсацию раньше времени, Витя зашифровал ответ, получив последовательность $$$b_1, \ldots, b_n$$$ по следующему правилу:
Легко видеть, что исходную последовательность можно вычислить по правилу $$$a_i = b_1 \oplus \ldots \oplus b_i$$$.
Однако, когда Витя решил представить миру свою сенсацию, он обнаружил, что числа $$$b_i$$$ в его шифре перемешались, и после расшифровки по правилу, описанному выше, может получиться последовательность, не являющаяся возрастающей. Чтобы не ударить лицом в грязь перед научным сообществом, Витя решил найти какую-нибудь перестановку чисел $$$b_i$$$, чтобы последовательность $$$a_i = b_1 \oplus \ldots \oplus b_i$$$ была строго возрастающей. Помогите ему найти любую такую перестановку, либо определите, что это невозможно (и значит, в шифр вкралась какая-то дополнительная ошибка).
В первой строке записано одно целое число $$$n$$$ ($$$1 \leq n \leq 10^5$$$).
Во второй строке через пробел записано $$$n$$$ целых чисел $$$b_1, \ldots, b_n$$$ ($$$1 \leq b_i < 2^{60}$$$).
Если искомой перестановки чисел не существует, выведите слово «No» в единственной строке.
В противном случае, в первой строке выведите слово «Yes», после чего во второй строке выведите числа $$$b'_1, \ldots, b'_n$$$ — подходящую перестановку чисел $$$b_i$$$. Неупорядоченные наборы $$$\{b_1, \ldots, b_n\}$$$ и $$$\{b'_1, \ldots, b'_n\}$$$ должны совпадать, то есть для каждого числа $$$x$$$ количество вхождений $$$x$$$ в первый набор должно быть равно количеству вхождений $$$x$$$ во второй набор. Кроме этого, последовательность $$$a_i = b'_1 \oplus \ldots \oplus b'_i$$$ должна быть строго возрастающей.
3
1 2 3
No
6
4 7 7 12 31 61
Yes
4 12 7 31 7 61
В первом примере ни одна из перестановок чисел не подходит.
Во втором примере данный ответ приводит к последовательности $$$a_1 = 4$$$, $$$a_2 = 8$$$, $$$a_3 = 15$$$, $$$a_4 = 16$$$, $$$a_5 = 23$$$, $$$a_6 = 42$$$.
Название |
---|