Alice 和 Bob 两人玩游戏 . 游戏规则如下 : 有 n 个球排成一行 , 其中第 m 个球是红色 , 其余球是白色 . Alice 和 Bob 轮流取球 , 每个人可以选择这一行球最左边的至多 k 个连续的球或者最右边的至多 k 个连续的球 ( 不能不取 ) , 然后将所选的球全部取走 . 先将红色球取走的玩家获得胜利 . 假设 Alice 先开始取球 , 在两个人都采取最优策略的情况下 , 谁会获得胜利 ?
Input
第一行为一个正整数 T(1 ≤ T ≤ 500) , 表示样例的个数 . 接下来的 T 行 , 每行包含三个正整数 n , m 和 k(1 ≤ n, m, k ≤ 105, 1 ≤ m ≤ n) .
Output
对于每个样例输出一行 , 若 Alice 获得胜利 , 则输出 "Alice" ( 不含引号 , 下同 ) , 否则输出 "Bob" .
Example
Input
2 3 2 1 6 3 2
Output
Bob Alice
应用到巴什博弈
(细节参考巴什博弈原理)
#include<stdio.h>
int main(){
int t,n,m,k;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&m,&k);
if((n-m+1)<=k||m<=k){
printf("Alice\n");
continue;
}
else{
if((n-m+1)%(k+1)==m%(k+1)){
printf("Bob\n");
}
else{
printf("Alice\n");
}
}
}
return 0;
}