CPP   68
gcd
Guest on 11th February 2023 01:21:14 AM


  1. #include <stdio.h>
  2. int gcd(int a,int b){
  3.     if(a%b==0)
  4.         return b;
  5.     else
  6.         return gcd(b,a%b);    
  7. }
  8. int main()
  9. {
  10.     int n;
  11.     int c1,n1,c2,n2;
  12.     int g,i,j;
  13.     int check;
  14.     double mboxp1,mboxp2;
  15.     while(scanf("%d",&n)!=EOF){
  16.         if(n==0)break;
  17.         check=1;
  18.         scanf("%d %d",&c1,&n1);    
  19.         scanf("%d %d",&c2,&n2);
  20.         g=(n1>=n2)? gcd(n1,n2):gcd(n2,n1);
  21.         if(n%g!=0){
  22.             check=0;
  23.             puts("Failed");    
  24.         }else{
  25.             mboxp1=(double)c1/(double)n1;
  26.             mboxp2=(double)c2/(double)n2;
  27.             if(mboxp1<=mboxp2){
  28.                for(i=0;n>=0;i++){
  29.                    if(n%n2==0){
  30.                        check=0;
  31.                        printf("%d %d\n",i,n/n2);
  32.                        break;
  33.                    }
  34.                    n-=n1;      
  35.                }
  36.                if(check==1)
  37.                    puts("Failed");        
  38.             }
  39.             else{
  40.                for(i=0;n>=0;i++){
  41.                    if(n%n1==0){
  42.                        check=0;
  43.                        printf("%d %d\n",n/n1,i);
  44.                        break;
  45.                    }
  46.                    n-=n2;      
  47.                }
  48.                if(check==1)
  49.                    puts("Failed");    
  50.             }
  51.         }
  52.     }
  53.  
  54.  
  55.  
  56.  
  57.    getchar();
  58.    return 0;
  59. }

Raw Paste

Login or Register to edit or fork this paste. It's free.