#A2026B. 【KRUSKAL2026】Vanishing Inversions

【KRUSKAL2026】Vanishing Inversions

注意本题采用分语言时间限制:Python 的时间限制为 2 秒,其他语言为 1 秒。

题目描述

Alice 和 Bob 在一个排列上进行游戏,Alice 先手。

称一个长度为 nn 的序列为一个​排列​,当且仅当 1,2,,n1,2,\dots,n 中的每个整数在序列中恰好出现一次。

初始给定一个长度为 nn 的排列a1,a2,,ana_1,a_2,\ldots,a_n。在游戏过程中的任意时刻,当前序列始终为一个长度为 mm 的排列。双方轮流操作,每次必须选择下列两种操作之一:

  • 选择一个满足 ai>ai+1a_i>a_{i+1} 的下标 ii (1i<m)(1\le i<m),并交换 aia_iai+1a_{i+1}
  • 选择一个满足 ai+1=ai+1a_{i+1}=a_i+1 的下标 ii (1i<m)(1\le i<m),并删除 aia_iai+1a_{i+1},随后将剩余元素按照相对大小重新编号:其中第 kk 小的元素被重新编号为 kk,使得剩余序列重新成为一个排列。

例如,当前排列为 [2,3,4,1][2,3,4,1]。可以删除相邻的 2,32,3,剩余序列为 [4,1][4,1];重新编号后,排列变为 [2,1][2,1]

当一名玩家无法进行任何操作时,该玩家输掉游戏。假设 Alice 和 Bob 都采用最优策略,请判断最终获胜者。

输入格式

本题有多组测试数据

第一行包含一个整数 TT (1T5000)(1\le T\le 5000),表示测试数据组数。

对于每组测试用例:

  • 第一行包含一个整数 nn (1n5000)(1\le n\le 5000)
  • 第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\ldots,a_n,保证 aa 是一个长度为 nn 的排列。

保证所有测试用例的 nn 之和不超过 50005000

输出格式

对于每组测试用例,如果 Alice 获胜,输出 Alice;否则输出 Bob

样例

样例输入

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

样例输出

Bob
Alice
Bob
Alice
Bob