Advertisement
Guest User

Untitled

a guest
May 25th, 2015
309
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.44 KB | None | 0 0
  1. #include <algorithm>
  2. #include <bitset>
  3. #include <chrono>
  4. #include <complex>
  5. #include <cstdlib>
  6. #include <iomanip>
  7. #include <iostream>
  8. #include <istream>
  9. #include <map>
  10. #include <ostream>
  11. #include <random>
  12. #include <set>
  13. #include <sstream>
  14. #include <string>
  15. #include <utility>
  16. #include <vector>
  17. using namespace std;
  18.  
  19.  
  20. typedef unsigned long long ull;
  21.  
  22.  
  23. class Solution {
  24. public:
  25.     void solve(std::istream& in, std::ostream& out) {
  26.         ull n, l, r; in >> n >> l >> r;
  27.         if (r < l) {
  28.             out << 0 << endl;
  29.             return;
  30.         }
  31.         ull res = solve(n, (r-n)/2);
  32.         if (l > n)
  33.             res -= solve(n, (l-1-n)/2);
  34.         out << res << endl;
  35.     }
  36.  
  37.     map<pair<ull, ull>, ull> mem;
  38.  
  39.     ull solve(ull n, ull r) {
  40.         if (n == 0)
  41.             return 1;
  42.  
  43.         auto it = mem.find({n, r});
  44.         if (it != mem.end())
  45.             return it->second;
  46.  
  47.         ull res = solve(n / 2, r / 2);
  48.         if ((n & 1) && r > 0)
  49.             res += solve(n / 2 + 1, (r - 1) / 2);
  50.         mem.insert(it, {{n, r}, res});
  51.         return res;
  52.     }
  53. };
  54.  
  55. void solve(std::istream& in, std::ostream& out)
  56. {
  57.     out << std::setprecision(12);
  58.     Solution solution;
  59.     solution.solve(in, out);
  60. }
  61. #include <fstream>
  62. #include <iostream>
  63.  
  64. int main() {
  65.     ios_base::sync_with_stdio(0);
  66.     cin.tie(0);
  67.  
  68.     istream& in = cin;
  69.  
  70.     ostream& out = cout;
  71.     solve(in, out);
  72.     return 0;
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement