{"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":"CF966C"},"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$，第一个多重集中 $x$ 的出现次数应等于第二个多重集中 $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$，第一个多重集中 $x$ 的出现次数应等于第二个多重集中 $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"},{"statement_type":"Markdown","content":"**Definitions**  \nLet $ n \\in \\mathbb{Z}^+ $ be the length of the sequence.  \nLet $ B = \\{b_1, b_2, \\dots, b_n\\} $ be a multiset of positive integers with $ b_i \\geq 1 $ and $ b_i < 2^{60} $.  \nLet $ B' = (b'_1, b'_2, \\dots, b'_n) $ be a permutation of $ B $.  \nDefine the prefix sum sequence $ A' = (a'_1, a'_2, \\dots, a'_n) $ by:  \n$$ a'_i = \\sum_{j=1}^i b'_j $$\n\n**Constraints**  \n1. $ 1 \\leq n \\leq 10^5 $  \n2. $ 1 \\leq b_i < 2^{60} $ for all $ i \\in \\{1, \\dots, n\\} $  \n3. The sequence $ A' $ must be **strictly increasing**:  \n   $$ a'_1 < a'_2 < \\dots < a'_n $$\n\n**Objective**  \nFind a permutation $ B' $ of $ B $ such that the corresponding prefix sum sequence $ A' $ is strictly increasing.  \nIf no such permutation exists, output \"_No_\".  \nOtherwise, output \"_Yes_\" followed by any valid $ B' $.","is_translate":false,"language":"Formal"}],"meta":{"iden":"CF966C","tags":["constructive algorithms","data structures","greedy","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"}}