English · Original
Chinese · Translation
Formal · Original
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:
* $b_1 = a_1$;
* $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$.
It is easy to see that the original sequence can be obtained using the rule $a_i = b_1 \oplus \ldots \oplus b_i$.
However, 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.
## Input
The first line contains a single integer $n$ ($1 \leq n \leq 10^5$).
The second line contains $n$ integers $b_1, \ldots, b_n$ ($1 \leq b_i < 2^{60}$).
## Output
If there are no valid permutations, print a single line containing "_No_".
Otherwise 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.
If there are multiple answers, print any of them.
[samples]
## Note
In the first example no permutation is valid.
In 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$.
Vitya 已经了解到,关于生命、宇宙以及一切的终极问题的答案并不是整数 #cf_span(class=[tex-font-style-striked], body=[54]) 42,而是一个递增的整数序列 $a_1, dots.h, a_n$。为了在需要之前不提前泄露这个秘密,Vitya 对答案进行了加密,使用以下规则得到了序列 $b_1, dots.h, b_n$:
可以轻易看出,原始序列可以通过规则 $a_i = b_1 plus.circle dots.h plus.circle b_i$ 恢复。
然而,后来 Vitya 发现,密码中的整数 $b_i$ 被打乱了顺序,因此如果按照上述规则解密,可能会产生一个非递增的序列。为了在科学界保住自己的声誉,Vasya 决定寻找一种 $b_i$ 的排列,使得序列 $a_i = b_1 plus.circle dots.h plus.circle b_i$ 严格递增。请帮助他找到这样的排列,或者判断其不存在。
第一行包含一个整数 $n$ ($1 lt.eq n lt.eq 10^5$)。
第二行包含 $n$ 个整数 $b_1, dots.h, b_n$ ($1 lt.eq b_i < 2^(60)$)。
如果不存在合法的排列,请输出一行 "_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$ 必须严格递增。
如果有多个答案,输出任意一个即可。
在第一个示例中,没有合法的排列。
在第二个示例中,给出的答案导致序列 $a_1 = 4$,$a_2 = 8$,$a_3 = 15$,$a_4 = 16$,$a_5 = 23$,$a_6 = 42$。
## Input
第一行包含一个整数 $n$ ($1 lt.eq n lt.eq 10^5$)。第二行包含 $n$ 个整数 $b_1, dots.h, b_n$ ($1 lt.eq b_i < 2^(60)$)。
## Output
如果不存在合法的排列,请输出一行 "_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$ 必须严格递增。如果有多个答案,输出任意一个即可。
[samples]
## Note
在第一个示例中,没有合法的排列。在第二个示例中,给出的答案导致序列 $a_1 = 4$,$a_2 = 8$,$a_3 = 15$,$a_4 = 16$,$a_5 = 23$,$a_6 = 42$。
**Definitions**
Let $ n \in \mathbb{Z}^+ $ be the length of the sequence.
Let $ B = \{b_1, b_2, \dots, b_n\} $ be a multiset of positive integers with $ b_i \geq 1 $ and $ b_i < 2^{60} $.
Let $ B' = (b'_1, b'_2, \dots, b'_n) $ be a permutation of $ B $.
Define the prefix sum sequence $ A' = (a'_1, a'_2, \dots, a'_n) $ by:
$$ a'_i = \sum_{j=1}^i b'_j $$
**Constraints**
1. $ 1 \leq n \leq 10^5 $
2. $ 1 \leq b_i < 2^{60} $ for all $ i \in \{1, \dots, n\} $
3. The sequence $ A' $ must be **strictly increasing**:
$$ a'_1 < a'_2 < \dots < a'_n $$
**Objective**
Find a permutation $ B' $ of $ B $ such that the corresponding prefix sum sequence $ A' $ is strictly increasing.
If no such permutation exists, output "_No_".
Otherwise, output "_Yes_" followed by any valid $ B' $.
API Response (JSON)
{
"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 revea...",
"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可以轻易看出,原始序列可...",
"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 $ ...",
"is_translate": false,
"language": "Formal"
}
]
}