#P1218. *【字典树】Zerone

*【字典树】Zerone

【题意】

Adam和Eve被赶出伊甸园后,盖起了四面高墙。高墙上写着n行01串。两人无事可做,于是开始就这些01串做如下博弈:

  1. Adam进行第1手,此后双方轮流操作。

  2. 第i手的操作者,可以且必须在0和1之间选择,并相应地抹掉某些串。具体地,若选择0(1),则抹掉第i位为0(1)的所有串。长度短于i的串,也须抹掉。

  3. 一方操作之后若将所有串都抹掉了,则判该方失败。

不难看出,若两人皆明智,则胜负必然确定。不幸的是,他俩虽明智却更懒惰,不愿按部就班地计算却又迫切地想知道:对于每个i,倘若对前i个串进行博弈,谁将获胜。请你写个程序帮帮他俩。

【输入格式】

第1行含一个正整数n,表示初始在墙上的01串总数。接下来的n行依次给出第1~n个01串。

【输出格式】

若干行,每行由空格分隔为三部分。首先是"Adam"或"Eve",代表必胜方;接着是正整数start和end,表示必胜的结果从前start行持续到前end行。

各行按start值递增输出,且相邻行的必胜方互异。

10
10101
1011
1110
000
01
110
10110
1001
11
0010
Adam 1 1
Eve 2 3
Adam 4 4
Eve 5 6
Adam 7 10

【数据范围】

对于 30% 的数据 1 ≤ n ≤ 10, 1 ≤ 01串长度 ≤ 10

对于 60% 的数据 1 ≤ n ≤ 1000, 1 ≤ 01串长度 ≤ 64

对于100% 的数据1 ≤ n ≤ 1000000, 1 ≤ 01串长度 ≤ 64