Time Limit: 10000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 8026 Accepted Submission(s): 2571
Problem Description
The Children’s Day has passed for some days .Has you remembered something happened at your childhood? I remembered I often played a game called hide handkerchief with my friends.
Now I introduce the game to you. Suppose there are N people played the game ,who sit on the ground forming a circle ,everyone owns a box behind them .Also there is a beautiful handkerchief hid in a box which is one of the boxes .
Then Haha(a friend of mine) is called to find the handkerchief. But he has a strange habit. Each time he will search the next box which is separated by M-1 boxes from the current box. For example, there are three boxes named A,B,C, and now Haha is at place of A. now he decide the M if equal to 2, so he will search A first, then he will search the C box, for C is separated by 2-1 = 1 box B from the current box A . Then he will search the box B ,then he will search the box A.
So after three times he establishes that he can find the beautiful handkerchief. Now I will give you N and M, can you tell me that Haha is able to find the handkerchief or not. If he can, you should tell me “YES”, else tell me “POOR Haha”.
儿童的时代已经过去了。你还记得你童年时发生过的事吗?我记得我经常和朋友一起玩一个叫做皮手帕的游戏。
现在我向你介绍游戏。假设有N个人玩这个游戏,坐在地上形成一个圆圈,每个人都在他们后面拥有一个盒子。还有一个漂亮的手帕藏在一个箱子里,这是盒子之一。
然后哈哈(我的一个朋友)被叫去找手帕。但他有一个奇怪的习惯。每次他将搜索当前框中由M-1框分隔的下一个框。例如,有三个框分别命名为A,B,C,现在哈哈在A的位置,现在他决定M等于2,所以他先搜索A,然后搜索C框,C由当前框A将2-1 = 1框B分开。然后他将搜索框B,然后他将搜索框A。
所以三次后,他建立了他可以找到美丽的手帕。现在我会给你N和M,你能告诉我,哈哈能否找到手帕吗?如果他能,你应该告诉我“是”,否则告诉我“可怜的哈哈”。
Input
There will be several test cases; each case input contains two integers N and M, which satisfy the relationship: 1<=M<=100000000 and 3<=N<=100000000. When N=-1 and M=-1 means the end of input case, and you should not process the data.
会有几个测试用例; 每个情况输入包含两个整数N和M,满足关系:1 <= M <= 100000000和3 <= N <= 100000000。 当N = -1和M = -1意味着输入大小写的结束,并且您不应该处理数据。
Output
For each input case, you should only the result that Haha can find the handkerchief or not.
对于每一个输入案例,你只应该得到哈哈可以找到手帕的结果。
Sample Input
3 2
-1 -1
Sample Output
YES
本题解题难度在于如何把查找手帕这个过程抽象出求公约数的过程
#include<bits/stdc++.h>
using namespace std;
int f(int a,int b)
{
if(b==0)
return a;
else
return f(b,a%b);
}
int main(){
int a,b;
while(cin>>a>>b)
{
if(a==-1&&b==-1)
break;
if(f(a,b)!=1)
cout<<"POOR HaHa"<<endl;
else
cout<<"YES"<<endl;
}
return 0;
}