您的位置:首页 > 编程语言 > Go语言

hdoj5512Pagodas【gcd】

2016-01-28 23:44 555 查看


Pagodas

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

Total Submission(s): 411    Accepted Submission(s): 306


Problem Description

n pagodas
were standing erect in Hong Jue Si between the Niushou Mountain and the Yuntai Mountain, labelled from 1 to n.
However, only two of them (labelled aand b,
where 1≤a≠b≤n)
withstood the test of time.

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.

 

Input

The first line contains an integer t (1≤t≤500) which
is the number of test cases.

For each test case, the first line provides the positive integer n (2≤n≤20000) and
two different integers a and b.

 

Output

For each test case, output the winner (``Yuwgna" or ``Iaka"). Both of them will make the best possible decision each time.

 

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

 

题意:给n个塔和其中两个塔的编号。已知可以在i=j+k或i=j-k的位置建塔Yuwgna先建谁不能建塔了则输。由i=j-k设j为最大的数则可有更相减损术只i为j和j的gcd所以能建塔的位置为i=gcd(j,k)的倍数所以判断能建塔的个数的奇偶性即可。

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<cmath>
#include<list>
#include<queue>
using namespace std;
int gcd(int a,int b){
return b==0?a:gcd(b,a%b);
}
int main()
{
int t,test=1,n,a,b;
scanf("%d",&t);
while(t--){
scanf("%d%d%d",&n,&a,&b);
printf("Case #%d: ",test++);
if((n/gcd(a,b))&1){
printf("Yuwgna\n");
}
else {
printf("Iaka\n");
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hdoj5512Pagodasgcd