我答了90分,差3#数据TOO MANY
我的思路是一开始分子是0,分母是1,然后向上罗列就好了,m+n的复杂度不会超时,但怎么判断TOO MANY呀?我尝试了好几种方案都不行
#include<iostream>
using namespace std;
int main()
{
int m,n,i;
long long k=0,l=1,a,b;
long double r,t,u=1e308;
bool x=false;
scanf("%d%d%llf",&m,&n,&r);
while(k<=m && l<=n)
{
t=1.0*k/l;
if(t>r)
{
if(t-r<u)
{
u=t-r;
a=k;
b=l;
}
l++;
}
else
{
if(r-t<u)
{
u=r-t;
a=k;
b=l;
}
k++;
}
}
if(x)
printf("TOO MANY");
else
printf("%lld/%lld",a,b);
return 0;
}