题目很好懂,这里直接讲思路
如果i,j中有一个为1的话,那么区间中所有的点都能被过到,这个很好理解对吧
如果i和j互质的话他们两个减减到最后绝对是=1的所以和第一种情况相同
如果i,j有公因数的话他们两个互相减的话最后得到的是最大公因数
那么一共就有len/gcd(i,j)座塔了
接下来判断奇偶即可
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int HZ(int a,int b);
int main()
{
int t;
scanf("%d",&t);
for (int k=1;k<=t;k++)
{
int len,i,j,sum(0);
scanf("%d %d %d",&len,&i,&j);
if (i==1||j==1) sum=len-2;
else if (HZ(i,j)) sum=len-2;
else
{
int gcd;
gcd=__gcd(i,j);
sum=len/gcd;
sum-=2;
}
printf("Case #%d: ",k);
if (sum&1) printf("Yuwgna\n");
else printf("Iaka\n");
}
return 0;
}
int HZ(int a,int b)
{
if (a>b) swap(a,b);
for (int k=2;k<a;k++)
if (b%k==0) return 0;
return 1;
}