fork download
  1. #include <bits/stdc++.h>
  2. #define endl '\n';
  3. using namespace std;
  4. typedef long long int LL;
  5.  
  6. int LOG2(LL n){
  7. int c=0;
  8. while(n>1){
  9. c++; n>>=1;
  10. }
  11. return c;
  12. }
  13.  
  14. LL foo(LL i,LL l ,LL h, LL n){
  15. LL mid=(l+h)/2;
  16. if(mid==i) return (n&1);
  17. if(i<mid) return foo(i,l,mid-1,n/2);
  18. return foo(i,mid+1,h,n/2);
  19. }
  20.  
  21. int main()
  22. {
  23. ios_base::sync_with_stdio(false);cin.tie(0);
  24.  
  25. //freopen("input.in","r",stdin);
  26.  
  27. LL n,l,r,res=0;
  28. cin>>n>>l>>r;
  29.  
  30. if(n==0){
  31. cout<<"0"<<endl;return 0;
  32. }
  33.  
  34. LL h = (1ll<<(((int)(LOG2(n))) +1))-1;
  35.  
  36. for(LL i=l;i<=r;i++)
  37. res+=foo(i-1,0,h,n);
  38. cout<<res<<endl;
  39.  
  40. return 0;
  41. }
  42.  
  43.  
Success #stdin #stdout 0s 16064KB
stdin
1125899906842623 1125899906742623 1125899906842623 
stdout
100001