atcoder#ABC171E. [ABC171E] Red Scarf
[ABC171E] Red Scarf
配点 : 点
問題文
猫のすぬけくんが 匹います。各すぬけくんには の番号が振られています。
各すぬけくんは首に赤いスカーフを巻いており、スカーフにはそのすぬけくんが一番好きな非負整数が つ書き込まれています。
すぬけくんたちは最近、整数の xor(排他的論理和)と呼ばれる演算を覚えました。
xor とは
個の非負整数 について、それらの xor、 $x_1 \sim \textrm{xor} \sim x_2 \sim \textrm{xor} \sim \ldots \sim \textrm{xor} \sim x_n$ は以下のように定義されます。
- $x_1 \sim \textrm{xor} \sim x_2 \sim \textrm{xor} \sim \ldots \sim \textrm{xor} \sim x_n$ を二進表記した際の の位の数は、 のうち、二進表記した際の の位の数が となるものの個数が奇数ならば 、そうでなければ となる。
例えば、 となります。
番号 が振られたすぬけくんが計算した、自分以外のすぬけくんのスカーフに書かれた整数の xor が であることが分かっています。 この情報を元に、各すぬけくんのスカーフに書かれた整数を特定してください。
制約
- 入力はすべて整数である
- は
- 与えられた情報と整合するようなスカーフ上の整数の組合せが存在する
入力
入力は以下の形式で標準入力から与えられる。
出力
行に 個の整数を空白区切りで出力せよ。
このうち左から 番目の整数は、番号 が振られたすぬけくんのスカーフに書かれた整数を表すものとする。
与えられた条件を満たす解が複数存在する場合、どれを出力しても構わない。
4
20 11 9 24
26 5 7 22
- $5 \sim \textrm{xor} \sim 7 \sim \textrm{xor} \sim 22 = 20$
- $26 \sim \textrm{xor} \sim 7 \sim \textrm{xor} \sim 22 = 11$
- $26 \sim \textrm{xor} \sim 5 \sim \textrm{xor} \sim 22 = 9$
- $26 \sim \textrm{xor} \sim 5 \sim \textrm{xor} \sim 7 = 24$
より、この出力は与えられた情報と整合します。