10465 - Homer Simpson
描述:输入三个数n,m,t,寻找一堆n和m,使之和为t,如果不存在,那么则寻找最接近(小于等于)t的数,并求出此时所包含的最多的n与m的个数和这个数与t的差值,并输出这两个数
#include <cstdio>
int main()
{
// freopen("a.txt","r",stdin);
int n,m,t,count,sum,flag,pos,v;
while(scanf("%d %d %d",&n,&m,&t)!=EOF)
{
sum=0;
if(n>m)
{
int temp=n;
n=m;
m=temp;
}
count=0;
sum=t;
flag=v=0;
pos=1000000;
while(sum>=0)
{
int c=sum%n,d=sum/n+count/m;
if(!c)
{
flag=1;
break;
}
else
{
if(pos>c)
{
pos=c;
v=d;
}
else if(pos==c&&v<d) v=d;
}
sum-=m;
count+=m;
}
if(flag) printf("%d\n",sum/n+count/m);
else printf("%d %d\n",v,pos);
}
return 0;
}

浙公网安备 33010602011771号