surajumang08

GGCURRtester

Jan 24th, 2017
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.08 KB | None | 0 0
  1. #include<iostream>
  2. #include<cstdlib>
  3. #include<algorithm>
  4. #include<cmath>
  5. #include<cstdio>
  6.  
  7. using namespace std;
  8. #define MOD 100007
  9.  
  10. // code for extended euclid's algorithm
  11. int gcd(int a, int b )
  12. {
  13.   if(a==0)
  14.     return b;
  15.   return gcd(b%a,a);
  16.  
  17. }
  18. int main()
  19. {
  20.   int t;
  21.   cin>>t;
  22.   while(t--)
  23.   {
  24.     int n,a,b,c;
  25.     cin>>n>>a>>b;
  26.     int cash=0,digital=0,num;
  27.     int g1=gcd(a,b);
  28.     for(int i=0;i<n;i++)
  29.     {
  30.       scanf("%d",&num);
  31.       if(num % g1 != 0)//not possible
  32.         digital++;
  33.       else if(num%a ==0 || num%b == 0) //possible
  34.         cash++;
  35.       else
  36.       {
  37.         //iteration begins
  38.         int val1=1,val2=1;
  39.         int sum=a*val1+b*val2;
  40.         for(int val1=1; ; val1++)
  41.         {
  42.           sum=a*val1+b*val2;
  43.           if(sum >= num)break;
  44.  
  45.           for(int val2=1; ; val2++)
  46.           {
  47.             sum=a*val1+b*val2;
  48.             if(sum >= num)break;
  49.  
  50.           }
  51.           if(sum == num)break;
  52.         }
  53.         (sum==num)? cash++ : digital++;
  54.  
  55.       }
  56.     }
  57.     printf("%d %d\n",cash,digital);
  58.   }
  59.   return 0;
  60. }
Add Comment
Please, Sign In to add comment