Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<cmath>
- using namespace std;
- int binary(int q,int max)
- {
- int d=0;
- int n1=0;
- while(q!=0)
- {
- d=q%2;
- if(d%2!=0)
- n1++;
- q=q/2;
- }
- return n1;
- }
- int main()
- {
- int t;
- cin>>t;
- while(t--)
- {
- int p1,p0,m1,m0;
- int max;
- cin>>max;
- int no1,no2;
- cin>>no1>>no2;
- p1= binary(no1,max);
- p0=max-p1;
- m1=binary(no2,max);
- m0=max-m1;
- //cout<<p1<<" "<<p0<<endl;
- //cout<<m1<<" "<<m0<<endl;
- int r[100];
- for(int i=0;i<max;i++)
- {
- while(p1!=0 && m0 !=0)
- {
- r[i]=1;
- p1--;
- m0--;
- i++;
- }
- while(m1!=0 && p0 !=0)
- {
- r[i]=1;
- m1--;
- p0--;
- i++;
- }
- while(p0!=0)
- {
- r[i]=0;
- p0--;
- i++;
- }
- while(m0!=0)
- {
- r[i]=0;
- m0--;
- i++;
- }
- }
- int sum=0,j=0;
- for(int i=max-1;i>=0;i--)
- {
- sum=sum+r[i]*pow(2,j);
- j++;
- }
- cout<<sum<<endl;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement