题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5512
题意:有n个庙经过长时间风吹雨打需要修补,只有两座(被标记为a,b)完好无损不需要修补,有两个和尚轮流去修补这n-2个庙,每个和尚每次只能修补一个庙标记为i,并要求i满足i=j+k或者i=j-k,每个庙只能被修建一次;其中j和k代表已经修建好的庙,Yuwgna先开始,问最后谁不能修建谁输;
看看样例就差不多能找到规律了。
Sample Input
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
Sample Output
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
就是求个最大公约数然后判断奇偶性。
#include <bits/stdc++.h>
using namespace std;
int main() {
int t;
scanf("%d", &t);
int kase = 1;
while(t--) {
printf("Case #%d: ", kase++);
int n, a, b;
scanf("%d %d %d", &n, &a, &b);
int gcd = __gcd(a, b);
int num = n / gcd - 2;
if(num % 2) puts("Yuwgna");
else puts("Iaka");
}
return 0;
}