{"problem":{"name":"C. Big Secret","description":{"content":"Vitya has learned that the answer for The Ultimate Question of Life, the Universe, and Everything is not the integer 54 42, but an increasing integer sequence $a_1, \\ldots, a_n$. In order to not revea","description_type":"Markdown"},"platform":"Codeforces","limit":{"time_limit":2000,"memory_limit":262144},"difficulty":"None","is_remote":true,"is_sync":true,"sync_url":null,"sign":"CF925C"},"statements":[{"statement_type":"Markdown","content":"Vitya has learned that the answer for The Ultimate Question of Life, the Universe, and Everything is not the integer 54 42, but an increasing integer sequence $a_1, \\ldots, a_n$. In order to not reveal the secret earlier than needed, Vitya encrypted the answer and obtained the sequence $b_1, \\ldots, b_n$ using the following rules:\n\n*   $b_1 = a_1$;\n*   $b_i = a_i \\oplus a_{i - 1}$ for all $i$ from 2 to $n$, where $x \\oplus y$ is the [bitwise XOR](https://en.wikipedia.org/wiki/Bitwise_operation#XOR) of $x$ and $y$.\n\nIt is easy to see that the original sequence can be obtained using the rule $a_i = b_1 \\oplus \\ldots \\oplus b_i$.\n\nHowever, some time later Vitya discovered that the integers $b_i$ in the cypher got shuffled, and it can happen that when decrypted using the rule mentioned above, it can produce a sequence that is not increasing. In order to save his reputation in the scientific community, Vasya decided to find some permutation of integers $b_i$ so that the sequence $a_i = b_1 \\oplus \\ldots \\oplus b_i$ is strictly increasing. Help him find such a permutation or determine that it is impossible.\n\n## Input\n\nThe first line contains a single integer $n$ ($1 \\leq n \\leq 10^5$).\n\nThe second line contains $n$ integers $b_1, \\ldots, b_n$ ($1 \\leq b_i &lt; 2^{60}$).\n\n## Output\n\nIf there are no valid permutations, print a single line containing \"_No_\".\n\nOtherwise in the first line print the word \"_Yes_\", and in the second line print integers $b'_1, \\ldots, b'_n$ — a valid permutation of integers $b_i$. The unordered multisets ${b_1, \\ldots, b_n}$ and ${b'_1, \\ldots, b'_n}$ should be equal, i. e. for each integer $x$ the number of occurrences of $x$ in the first multiset should be equal to the number of occurrences of $x$ in the second multiset. Apart from this, the sequence $a_i = b'_1 \\oplus \\ldots \\oplus b'_i$ should be strictly increasing.\n\nIf there are multiple answers, print any of them.\n\n[samples]\n\n## Note\n\nIn the first example no permutation is valid.\n\nIn the second example the given answer lead to the sequence $a_1 = 4$, $a_2 = 8$, $a_3 = 15$, $a_4 = 16$, $a_5 = 23$, $a_6 = 42$.","is_translate":false,"language":"English"},{"statement_type":"Markdown","content":"Vitya 已经了解到，生命、宇宙以及一切的终极问题的答案不是整数 #cf_span(class=[tex-font-style-striked], body=[54]) 42，而是一个递增的整数序列 $a_1, dots.h, a_n$。为了在必要之前不提前泄露这个秘密，Vitya 对答案进行了加密，使用以下规则得到了序列 $b_1, dots.h, b_n$：\n\n可以轻易看出，原始序列可以通过规则 $a_i = b_1 plus.circle dots.h plus.circle b_i$ 恢复。\n\n然而，后来 Vitya 发现加密中的整数 $b_i$ 被打乱了，因此如果按照上述规则解密，可能会得到一个非递增的序列。为了在科学界保住自己的声誉，Vasya 决定寻找一种 $b_i$ 的排列，使得序列 $a_i = b_1 plus.circle dots.h plus.circle b_i$ 严格递增。请帮助他找到这样的排列，或确定其不存在。\n\n第一行包含一个整数 $n$ ($1 lt.eq n lt.eq 10^5$)。\n\n第二行包含 $n$ 个整数 $b_1, dots.h, b_n$ ($1 lt.eq b_i < 2^(60)$)。\n\n如果不存在合法的排列，请输出一行 \"_No_\"。\n\n否则，在第一行输出单词 \"_Yes_\"，在第二行输出整数 $b '_1, dots.h, b '_n$ —— 一个合法的 $b_i$ 的排列。无序多重集 ${b_1, dots.h, b_n}$ 和 ${b '_1, dots.h, b '_n}$ 应相等，即对于每个整数 $x$，其在第一个多重集中的出现次数应等于其在第二个多重集中的出现次数。此外，序列 $a_i = b '_1 plus.circle dots.h plus.circle b '_i$ 应严格递增。\n\n如果有多个答案，输出任意一个即可。\n\n在第一个示例中，没有合法的排列。\n\n在第二个示例中，给出的答案得到了序列 $a_1 = 4$，$a_2 = 8$，$a_3 = 15$，$a_4 = 16$，$a_5 = 23$，$a_6 = 42$。\n\n## Input\n\n第一行包含一个整数 $n$ ($1 lt.eq n lt.eq 10^5$)。第二行包含 $n$ 个整数 $b_1, dots.h, b_n$ ($1 lt.eq b_i < 2^(60)$)。\n\n## Output\n\n如果不存在合法的排列，请输出一行 \"_No_\"。否则，在第一行输出单词 \"_Yes_\"，在第二行输出整数 $b '_1, dots.h, b '_n$ —— 一个合法的 $b_i$ 的排列。无序多重集 ${b_1, dots.h, b_n}$ 和 ${b '_1, dots.h, b '_n}$ 应相等，即对于每个整数 $x$，其在第一个多重集中的出现次数应等于其在第二个多重集中的出现次数。此外，序列 $a_i = b '_1 plus.circle dots.h plus.circle b '_i$ 应严格递增。如果有多个答案，输出任意一个即可。\n\n[samples]\n\n## Note\n\n在第一个示例中，没有合法的排列。在第二个示例中，给出的答案得到了序列 $a_1 = 4$，$a_2 = 8$，$a_3 = 15$，$a_4 = 16$，$a_5 = 23$，$a_6 = 42$。","is_translate":true,"language":"Chinese"}],"meta":{"iden":"CF925C","tags":["constructive algorithms","math"],"sample_group":[["3\n1 2 3","No"],["6\n4 7 7 12 31 61","Yes\n4 12 7 31 7 61"]],"created_at":"2026-03-03 11:00:39"}}