Pagodas
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 1296 Accepted Submission(s): 913
Two monks, Yuwgna and Iaka, decide to make glories great again. They take turns to build pagodas and Yuwgna takes first. For each turn, one can rebuild a new pagodas labelled i (i∉{a,b} and 1≤i≤n) if there exist two pagodas standing erect, labelled j and k respectively, such that i=j+k or i=j−k. Each pagoda can not be rebuilt twice.
This is a game for them. The monk who can not rebuild a new pagoda will lose the game.
For each test case, the first line provides the positive integer n (2≤n≤20000) and two different integers a and b.
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
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
int T, n, a, b, gcd, ans, kase;
int GCD(int a, int b) {
if (!b) return a;
return GCD(b, a % b);
}
int main()
{
cin >> T;
kase = 0;
while (T--) {
scanf("%d%d%d", &n, &a, &b);
printf("Case #%d: ", ++kase);
gcd = GCD(a, b);
ans = n / gcd;
if (ans & 1) {
puts("Yuwgna");
}
else {
puts("Iaka");
}
}
return 0;
}
4万+



被折叠的 条评论
为什么被折叠?



