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

stdout
50000