L - をあ ぷろぶれむ
解説
/
実行時間制限: 2 sec / メモリ制限: 1024 MB
配点: 700 点
問題文
いろはちゃんは、高橋君に次の問題を出されました。
- 非負整数列 A_1, A_2, \dots, A_N が与えられる。
- 1 \leq l \leq r \leq N を満たすすべての整数組 (l, r) に対し、A_l xor ... xor A_r を計算して黒板に書く。
- 上の操作によって黒板に書かれた N(N+1)/2 個の整数を大きい順に並べ直したとき、K 番目の数が何になるか答えよ。
いろはちゃんは、この問題をすでに「AtCoder甲子園」で解いたことがあります。そのことを高橋君に伝えると、「xor は or の書き間違い だった」と言われました。この発言の真偽はともかく、上の問題の xor を or に読み替えて 解きなおしてください。
制約
- 1 \leq N \leq 10^5
- 1 \leq K \leq N(N+1)/2
- 0 \leq A_i < 2^{60}
- N,K,A_i は整数
入力
入力は以下の形式で標準入力から与えられます。
N K A_1 A_2 \vdots A_N
出力
高橋君に出された問題の xor を or に読み替えた ときの答えを 1 行に出力してください。
入力例 1
3 3 4 3 5
出力例 1
7
入力例 2
3 6 1 3 4
出力例 2
1
入力例 3
9 37 2 0 1 2 5 7 0 2 3
出力例 3
2
入力例 4
17 100 3 14 15 92 65 35 89 79 32 38 46 26 43 38 32 79 50
出力例 4
111