数组数组
题号:NC288078
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

\hspace{15pt}对于给定的由 n 个整数构成、且整数仅为 1 或 -1 的数组 \{a_1, a_2, \dots, a_n\},Alice 和 Bob 借助于此玩游戏。
\hspace{15pt}双方轮流操作,每一次操作可以任选一个非空连续子数组,该子数组满足其中的所有元素的乘积恰好为 1,随后将其删除。删除后,左右剩余元素将直接拼接形成新的连续数组,下一步的操作基于新数组进行。
\hspace{15pt}若轮到某位玩家操作时无法找到这样的子数组删除,则该玩家输掉游戏,对方获胜。现在,Alice 作为先手,且两人都采取最优策略,游戏最后的胜者会是谁?

\hspace{15pt}非空连续子数组为从原数组中,连续的选择一段元素(可以全选,但不可以不选)得到的新数组。

输入描述:

\hspace{15pt}每个测试文件均包含多组测试数据。第一行输入一个整数 T\left(1\leq T\leq 2 \times 10^5\right) 代表数据组数,每组测试数据描述如下:
\hspace{15pt}第一行输入一个正整数 n \left(1\leq n\leq 2\times 10^5\right) 代表数组中的元素个数。
\hspace{15pt}第二行输入 n 个整数 a_1, a_2, \dots, a_n \left(a_i\in \{ -1,1\}\right) 代表数组中的元素。

\hspace{15pt}除此之外,保证单个测试文件的 n 之和不超过 2 \times 10^5

输出描述:

\hspace{15pt}对于每一组测试数据,新起一行。如果最后获胜的是 Alice,输出 \rm Alice,否则输出 \rm Bob
示例1

输入

复制
5
5
1 1 1 1 1
5
-1 -1 -1 -1 -1
5
1 1 1 1 -1
5
1 1 -1 1 1
5
1 1 -1 -1 1

输出

复制
Alice
Alice
Alice
Bob
Alice