51Nod - 1066——Bash游戏(Bash博弈入门经典题)
近日,stone学长去面试找工作,面试的时候面试官问了stone学长一道题:“总共有x张彩票并且这x张彩票是有序的,已知最后一张彩票是中奖号码,甲和乙两个人轮流买,并规定不能打乱彩票顺序,甲先买,每次每人最多买m张,最少买一张,由于甲乙两人都想获得大奖,所以在买彩票的过程中都特别谨慎肯定会买最合适的张数。现给出彩票总数x和每次最多能购买的彩票张书m。请问你能确定最后谁能获得大奖吗?”
例如:x=3,m=2;无论甲怎么买,最后获得大奖的肯定是乙;
stone学长非常想得到这份工作,那么机制的你们能帮一下stone学长解决这个问题吗?
Input
一个整数t表示测试实例有t组,接下来t行,每行两个数x,m中间用空格隔开。 (1<=t<=10000,1<=x,m<=1000000000)
Output
共t行,若甲获得大奖则输出A,若乙获得大奖则输出B。
Sample Input
5
5 2
6 2
7 4
8 3
12 5
Sample Output
A
B
A
B
B
代码:
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
int main(){
int T;
cin>>T;
while(T--){
int a,b;
scanf("%d %d",&a,&b);
if(a<=b)printf("A\n");
else if(a % (b+1) == 0)printf("B\n");
else printf("A\n");
}
return 0;
}