解题思路:
和三个水杯(nyoj21)很像,但范围比它小很多。而且简单很多。题目给的范围S==N+M,101>S>0,N>0,M>0。
可以知道4 3 1 ;8 6 2 ;12 9 3;三组数据结果都是一样的。(假设N>M)一定是先到入N,后倒入M,最终水会在S,M,两个杯子里面:
可以找出规律,当然也可以搜索解决。
程序:
#include<stdio.h>
int gcd(int b,int c)
{
if(b%c!=0)
return gcd(c,b%c);
return c;
}
int main()
{
int a,b,c,i;
while(scanf("%d %d %d",&a,&b,&c),a+b+c)
{
if(b<c) // 要保证 b>c
{
i=b;
b=c;
c=i;
}
c=gcd(b,c); //求b和c 的最大公约数。
a/=c;
if(a%2!=0)
printf("NO\n");
else
printf("%d\n",a-1);
}
return 0;
}