D:Pagodas(塔) http://acm.hdu.edu.cn/showproblem.php?pid=5512
//15ms(1000ms) hdu不能调用__gcd()函数?
/*theme:给定n,表示一共要建n个塔(编号从1到n),给出a,b代表最开始有了塔a和塔b
两个人轮流建,每次只能建塔i,i=j+k或i=j-k,j,k为已经建成的塔,A先开始,每次选择最优
无法继续建塔的一方输,问最后谁赢
Input:t(1≤t≤500):case number,n:(2≤n≤20000)and two different integers a and b
output:output the winner ("Yuwgna" or "Iaka").
*
*
*
*
*
*
solution:因为要求是从a,b开始两数相加或相减,而a%g=0,b%g=0,(g=gcd(a,b)),所以(a+b)%g=0,(b-a)%g=0
即能建的塔的个数为n/g,因为塔的间距已由a,b确定,只能为g的倍数,所以最后判断一下奇偶即可
*/
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
int gcd(int a,int b)
{
return 0==b?a:gcd(b,a%b);
}
int main()
{
int t;
cin>>t;
int i=0;
while(t--)
{
int n,a,b;
scanf("%d%d%d",&n,&a,&b);
int g=gcd(a,b);
int cnt=n/g-2;
if(cnt&1)
printf("Case #%d: Yuwgna\n",++i);
else
printf("Case #%d: Iaka\n",++i);
}
}
/*
16
2 1 2
3 1 3
67 1 2
100 1 2
8 6 8
9 6 8
10 6 8
11 6 8
12 6 8
13 6 8
14 6 8
15 6 8
16 6 8
1314 6 8
1994 1 13
1994 7 12
Case #1: Iaka
Case #2: Yuwgna
Case #3: Yuwgna
Case #4: Iaka
Case #5: Iaka
Case #6: Iaka
Case #7: Yuwgna
Case #8: Yuwgna
Case #9: Iaka
Case #10: Iaka
Case #11: Yuwgna
Case #12: Yuwgna
Case #13: Iaka
Case #14: Yuwgna
Case #15: Iaka
Case #16: Iaka
*/