X - XOR Bag
解説
/
/
実行時間制限: 2 sec / メモリ制限: 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 が必ず勝利することができます。