atcoder#ARC152E. [ARC152E] Xor Annihilation
[ARC152E] Xor Annihilation
配点 : 点
問題文
数直線上の の位置に 個のボールが並んでおり、 にあるボールは の重みを持っています。ただし、 は から までの整数を並び替えた数列です。 さらに、あなたは 以下の負でない整数 を つ選び、座標 にそれぞれ の重みを固定します。 その後、各ボールは次の規則にしたがって、一斉に運動を始めます。
- 各時点で、ボールの存在している座標より真に右側にある座標・ボールの重みの総 を 、真に左側にある座標・ボールの重みの総 を とすると、このボールは であれば右側に、 であれば左側に毎秒 の速さで動き、 であれば静止する。
- 左右から来たボールが同じ座標に到達したときなど、同じ座標に同時に複数のボールが存在した場合、これらのボールは合体し、その重みは合体前の重みの総 となる。
このとき、 秒以内に全てのボールが静止するような はいくつあるでしょうか。
$\mathrm{XOR}$ とは
非負整数 $A, B$ のビット単位 $\mathrm{XOR}$ 、$A \oplus B$ は、以下のように定義されます。
- $A \oplus B$ を二進表記した際の $2^k$ ($k \geq 0$) の位の数は、$A, B$ を二進表記した際の $2^k$ の位の数のうち一方のみが $1$ であれば $1$、そうでなければ $0$ である。
一般に k 個の非負整数 p_1, p_2, p_3, \dots, p_k のビット単位 \mathrm{XOR} は (\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k) と定義され、これは p_1, p_2, p_3, \dots, p_k の順番によらないことが証明できます。
制約
- のとき
- 入力される値はすべて整数である
入力
入力は以下の形式で標準入力から与えられる。
出力
答えを整数で出力せよ。
2
1 2 3
1
の重みを持つボールを単に と呼びます。
例えば とした場合、はじめ と は右向きに、 は左向きに動きます。 すると と がぶつかって合体し、この瞬間から左向きに動き始めます。 そののち、 から まで全てのボールが合体した瞬間に合体後のボールは静止します。 したがって、 は条件を満たします。
また、 とした場合、 と は左向き、 は右向きに、固定した重みに向かって 秒程度動き続けることになります。 したがって、 は条件を満たしません。
実は のみが条件を満たすため、 と答えてください。
3
7 1 2 3 4 5 6
2