#A2026B. 【KRUSKAL2026】Vanishing Inversions
【KRUSKAL2026】Vanishing Inversions
注意本题采用分语言时间限制:Python 的时间限制为 2 秒,其他语言为 1 秒。
题目描述
Alice 和 Bob 在一个排列上进行游戏,Alice 先手。
称一个长度为 的序列为一个排列,当且仅当 中的每个整数在序列中恰好出现一次。
初始给定一个长度为 的排列。在游戏过程中的任意时刻,当前序列始终为一个长度为 的排列。双方轮流操作,每次必须选择下列两种操作之一:
- 选择一个满足 的下标 ,并交换 和 。
- 选择一个满足 的下标 ,并删除 和 ,随后将剩余元素按照相对大小重新编号:其中第 小的元素被重新编号为 ,使得剩余序列重新成为一个排列。
例如,当前排列为 。可以删除相邻的 ,剩余序列为 ;重新编号后,排列变为 。
当一名玩家无法进行任何操作时,该玩家输掉游戏。假设 Alice 和 Bob 都采用最优策略,请判断最终获胜者。
输入格式
本题有多组测试数据。
第一行包含一个整数 ,表示测试数据组数。
对于每组测试用例:
- 第一行包含一个整数 ;
- 第二行包含 个整数 ,保证 是一个长度为 的排列。
保证所有测试用例的 之和不超过 。
输出格式
对于每组测试用例,如果 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