Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cstdlib>
- #include<algorithm>
- #include<cmath>
- #include<cstdio>
- using namespace std;
- #define MOD 100007
- // code for extended euclid's algorithm
- int gcd(int a, int b )
- {
- if(a==0)
- return b;
- return gcd(b%a,a);
- }
- int main()
- {
- int t;
- cin>>t;
- while(t--)
- {
- int n,a,b,c;
- cin>>n>>a>>b;
- int cash=0,digital=0,num;
- int g1=gcd(a,b);
- for(int i=0;i<n;i++)
- {
- scanf("%d",&num);
- if(num % g1 != 0)//not possible
- digital++;
- else if(num%a ==0 || num%b == 0) //possible
- cash++;
- else
- {
- //iteration begins
- int val1=1,val2=1;
- int sum=a*val1+b*val2;
- for(int val1=1; ; val1++)
- {
- sum=a*val1+b*val2;
- if(sum >= num)break;
- for(int val2=1; ; val2++)
- {
- sum=a*val1+b*val2;
- if(sum >= num)break;
- }
- if(sum == num)break;
- }
- (sum==num)? cash++ : digital++;
- }
- }
- printf("%d %d\n",cash,digital);
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment