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; }