X - XOR Bag Editorial /

Time Limit: 2 sec / Memory Limit: 1024 MiB

配点 : 900 点

問題文

整数 N と正整数 X 、長さ N の非負整数列 A=(A_1,A_2,\ldots,A_N) が与えられます。

大きい黒板と小さい黒板の 2 つがあります。大きい黒板には N 個の非負整数 A_1,A_2,\ldots,A_N が書かれており、小さい黒板には何も書かれていません。

Alice と Bob が 2 つの黒板を使って以下のようなゲームを行います。

  • Alice から始めて両者は交互に手番をプレイする。
  • 各手番では、手番のプレイヤーに応じて以下の操作を行う:
    • Alice は、大きい黒板に書かれた整数を 1 つ消し、消した整数を小さい黒板に書き込む。
    • Bob は、大きい黒板に書かれた整数を 1 つ消す。
  • 大きい黒板に書かれた整数がなくなったとき、ゲームは終了する。小さい黒板に書かれた整数を 1 個以上選び、それらの総 \mathrm{XOR} を X にできるならば Alice の勝ち、そうでなければ Bob の勝ちとなる。

両者が最善を尽くしたとき、どちらのプレイヤーが勝つかを求めてください。

T 個のテストケースが与えられるので、それぞれについて答えを求めてください。

制約

  • 1\le T\le 10
  • 1\le N\le 200
  • 1\le X < 2^{60}
  • 0\le A_i< 2^{60}
  • 入力される値は全て整数

入力

入力は以下の形式で標準入力から与えられる。

T
\text{case}_1
\text{case}_2
\vdots
\text{case}_T

各テストケースは以下の形式で与えられる。

N X
A_1 A_2 \ldots A_N

出力

各テストケースに対する答えを順に改行区切りで出力せよ。

各テストケースについて、両者が最善を尽くしたとき Alice が勝つならば Alice を、Bob が勝つならば Bob を出力せよ。


入力例 1

3
3 1
2 2 3
2 3
1 2
5 3
1 1 2 2 4

出力例 1

Alice
Bob
Alice

1 番目のテストケースについて考えます。

例えばゲームは以下のように進行します:

  • Alice の手番:大きい黒板から 3 を消し、小さい黒板に 3 を書き込む。
  • Bob の手番:大きい黒板から 2 を 1 つ消す。
  • Alice の手番:大きい黒板から残りの 2 を消し、小さい黒板に 2 を書き込む。

ゲーム終了時、小さい黒板には 3,2 が書かれています。これらの総 \mathrm{XOR} は 1 なので、Alice の勝ちとなります。

Bob がどのように行動しても Alice が適切に行動することで Alice が必ず勝利することができます。