Anu Has a Function - #618 div2 c

#math

問題
https://codeforces.com/contest/1300/problem/C

コード
https://codeforces.com/contest/1300/submission/70657047


演算
x | y - y

x | y で x に y の 1 のとこを 1 にし, -y で y が 1 のとこを 0 にする

x | y で y で 1 の bit はすべて 1 になってるので, y を引くのはそのまま y の 1 の bit を 0 に変える
桁落ちとかない

演算は, y が 1 のとこを 0 にすることを意味する

y の 1 の bit で, x で 0 なら影響はないが, x で 1 なら 0 にされる

よって,  a_1, ..., a_n a_1 以外は  a_1 の 1 を 0 にするだけ

n 個の数で, その bit が 1 なのが 1 個しかない  \ \ \ \ (1) のが大事
2 個以上あれば, 必ず誰かに 0 にされる

(1) から数 num (上に貼ったコードでの変数) を構成

n 個の入力と num で & をとって一番でかいのを  y = a_1 にする
index が z