Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main()
- {
- int t,c;
- cin>>t;
- for(c=1; c<=t; c++)
- {
- ll q,x,p,mul=1,z=0;
- cin>>q;
- bool f= false;
- ll ara[70],i=0,ans=0;
- while(q>0)
- {
- ara[i]=q%2;
- if(ara[i]==0)
- z++;
- i++;
- q/=2;
- }
- q=i;
- if(z==0)
- {
- ara[q-1]=0;
- ara[q]=1;
- q++;
- }
- else
- {
- for(i=0; i<q-1; i++)
- {
- if(ara[i]==1 && ara[i+1]==0)
- {
- x=i;
- ara[i]=0;
- ara[i+1]=1;
- f=true;
- break;
- }
- }
- if(f)
- {
- for(i=0; i<x; i++)
- {
- if(ara[i]==1)
- ans++;
- ara[i]=0;
- }
- for(i=0; i<ans; i++)
- ara[i]=1;
- }
- else
- {
- z=0;
- for(i=q-1;i>=0;i--)
- {
- if(ara[i]==1)z++;
- ara[i]=0;
- }
- ara[q++]=1;
- for(i=0;i<z-1;i++)ara[i]=1;
- }
- }
- ans=0;
- //for(i=q-1;i>=0;i--)cout<<ara[i]<<endl;
- for(i=0; i<q; i++)
- {
- ans+=(ara[i]*mul);
- mul*=2;
- }
- cout<< "Case "<<c<< ": "<<ans<<endl;
- }
- }
RAW Paste Data