atcoder#ARC137C. [ARC137C] Distinct Numbers

[ARC137C] Distinct Numbers

题目描述

長さ N N の非負整数列 A=(A1,A2,,AN) A=(A_1,A_2,\cdots,A_N) が与えられます. ここで,A A の要素はすべて互いに異なります.

Alice と Bob がゲームをします. Alice からはじめて,二人は交互に手番をプレイします. 各手番では,プレイヤーは以下の操作を行います.

  • A A の中で最も大きい要素を選び,それをより小さい別の非負整数で置き換える. ただし,操作後も A A の要素はすべて互いに異なる必要がある.

先に操作を行えなくなった方の負けです. 両者が最適に行動した時,どちらが勝つか判定してください.

输入格式

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

N N A1 A_1 A2 A_2 \cdots AN A_N

输出格式

Alice が勝つ場合は Alice と,Bob が勝つ場合は Bob と出力せよ.

题目大意

给定长为 NN 的非负整数列 A=(A1,,AN)A=(A_1,\dots,A_N),保证 AA 中元素互不相同。

Alice 和 Bob 在玩游戏。Alice 为先手,两人轮流操作。每次操作选手可以如下进行:

  • 选择当前 AA 中最大的元素,将其替换为一个更小的非负整数。要求替换后 AA 中元素仍然互不相同。

首先无法操作的一方失败。当两人都采取最优策略时,求谁有必胜策略。

输入格式

第一行一个正整数 NN

第二行 NN 个非负整数表示 A1,,aNA_1,\dots,a_N

输出格式

如果 Alice 有必胜策略则输出 Alice,如果 Bob 有必胜策略则输出 Bob

数据范围

  • 2N3×1052 \le N \le 3 \times 10^5

  • 0A1<A2<<AN1090 \le A_1<A_2<\dots<A_N\le10^9

样例 1 解释

第一回合 Alice 可以将 44 变为 0,1,30,1,3,如果 Alice 将 44 变为 0,10,1 中的一个,则 Bob 可以将 22 变为 0,10,1 中另一个,Alice 无法操作从而落败;如果 Alice 将 44 变为 33,则此时 Bob 需要将 33 变为 0,10,1 中一个,同上知 Bob 必败。因此 Alice 有必胜策略。

2
2 4
Alice
3
0 1 2
Bob

提示

制約

  • 2  N  3 × 105 2\ \leq\ N\ \leq\ 3\ \times\ 10^5
  • $ 0\ \leq\ A_1\ <\ A_2\ <\ \cdots\ <\ A_N\ \leq\ 10^9 $
  • 入力される値はすべて整数

Sample Explanation 1

初手で Alice が行える操作は,4 4 0,1,3 0,1,3 のいずれかで置き換えることです. 4 4 0 0 または 1 1 で置き換えたとすると,次の手番で Bob が行動したあと,Alice が行動不能になり,Alice の負けになります. 一方,4 4 3 3 で置き換えると,その後の Bob の行動に依らず,Alice が勝利できます. よって,この入力では Alice が勝利します.