配点 : 700 点
問題文
長さ N の非負整数列 A=(A1,A2,…,AN) 、および正整数 K が与えられます。
1≤Xi≤N (1≤i≤K) を満たす長さ K の正整数列 X=(X1,X2,…,XK) は NK 通り考えられますが、それらすべてに対する i=1∑KAXi のビット単位 XOR を求めてください。
ビット単位 XOR 演算とは
非負整数 A,B のビット単位 XOR 、A⊕B は、以下のように定義されます。
- A⊕B を二進表記した際の 2k (k≥0) の位の数は、A,B を二進表記した際の 2k の位の数のうち一方のみが 1 であれば 1、そうでなければ 0 である。
例えば、3 \oplus 5 = 6 となります (二進表記すると: 011 \oplus 101 = 110)。
一般に 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 の順番によらないことが証明できます。
制約
- 1≤N≤1000
- 1≤K≤1012
- 0≤Ai≤1000
- 与えられる入力はすべて整数
入力
入力は以下の形式で標準入力から与えられる。
N K
A1 A2 … AN
出力
答えを出力せよ。
X として考えられるのは (X1,X2)=(1,1),(1,2),(2,1),(2,2) の 4 通りであり、それぞれに対する AX1+AX2 は 20,40,40,60 です。よって答えは 20⊕40⊕40⊕60=40 となります。