Advertisement
Guest User

Untitled

a guest
Apr 28th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.30 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<cstdlib>
  4. #include<cstring>
  5. #include<cstdio>
  6. #include<vector>
  7. #include<cmath>
  8. #include<queue>
  9. #include<stack>
  10. #include<deque>
  11. #include<map>
  12. #include<set>
  13. #define MAX(a,b) (a>b?a:b)
  14. #define MIN(a,b) (a<b?a:b)
  15. #define UP upper_bound
  16. #define LB lower_bound
  17. #define LL long long
  18. #define Pi 3.14159265358
  19. #define si size()
  20. #define en end()
  21. #define be begin()
  22. #define fi first
  23. #define se second
  24. #define pb push_back
  25. #define mp make_pair
  26. #define ii set<int>::iterator
  27. #define Tree int ind, int L, int R
  28. #define Left 2*ind,L,(L+R)/2
  29. #define Right 2*ind+1,(L+R)/2+1,R
  30. using namespace std;
  31. int Z[40];
  32. int n, m, k, i, j, a, b, res;
  33. vector < int > v, g;
  34. main(){
  35. //freopen("A.in","r",stdin);
  36. //freopen("A.out","w",stdout);
  37. cin>>n>>a>>b;
  38. if(a==(1<<n)/2 && b==(1<<n)/2){ cout<<1; return 0; }
  39. while(a)
  40. {
  41. v.pb(a%2);
  42. a/=2;
  43. }
  44. while(b)
  45. {
  46. g.pb(b%2);
  47. b/=2;
  48. }
  49. for(i=0;i<v.si;i++)
  50. if(v[i]==1)
  51. Z[i]++;
  52. for(i=0;i<g.si;i++)
  53. if(g[i]==1)
  54. Z[i]++;
  55. for(i=n;i>=0;i--)if(Z[i])j=i;
  56. for(i=n;i>j;i--)if(Z[i]==2)res++;
  57. res+=n-j;
  58. cout<<res;
  59. cin>>n;
  60. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement