lina_os

Untitled

Jun 30th, 2025 (edited)
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.70 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define ll long long
  4. #define ul unsigned long long
  5. #define ld long double
  6. #define vll(v) vector<ll>v
  7. //#define vll(v,n) vector<ll>v(n);
  8. #define mll(m) map<ll,ll>m;
  9. #define sll(s) set<ll>s;
  10. #define iv(v) for(auto &i:v) cin >> i;
  11. #define ov(v) for(auto &i:v) cout << i << " ";
  12. #define all(v) (v.begin(),v.end());
  13. #define Bismillah ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
  14.  
  15. using namespace std;
  16.  
  17. string toBin(ll n) {
  18.     string s;
  19.     while (n) {
  20.         s.push_back(n%2+'0');
  21.         n/=2;
  22.     }
  23.     reverse(s.begin(), s.end());
  24.     return s;
  25. }
  26. string toNice(ll n, ll i) {
  27.     string s;
  28.     while (n) {
  29.         s.push_back((n%2)?'9':'6');
  30.         n/=2;
  31.     }
  32.     while (s.size()<i) s.push_back('6');
  33.     reverse(s.begin(), s.end());
  34.     return s;
  35. }
  36.  
  37. void solve() {
  38.     ll l,r;
  39.     cin >> l >> r;
  40.     string sl=to_string(l);
  41.     string sr=to_string(r);
  42.     ll ans=0;
  43.     for (ll i=sl.size()+1; i<sr.size(); i++) {
  44.         ans+=1<<i;
  45.     }
  46.     ll i=sl.size();
  47.     if (i<=18) {
  48.         for (ll j = 0; j < (1 << i); j++) {
  49.             string s = toNice(j,i);
  50.             ll ss = stoll(s);
  51.             if (ss >= l && ss <= r) ans++;
  52.             else if (ss > r) break;
  53.         }
  54.     }
  55.     if (sl.size()!=sr.size() && sr.size()<=18) {
  56.         i=sr.size();
  57.         for (ll j=0; j<(1<<i); j++) {
  58.             string s=toNice(j,i);
  59.             ll ss=stoll(s);
  60.             if (ss>=l&&ss<=r) ans++;
  61.             else if (ss>r) break;
  62.         }
  63.     }
  64.  
  65.     cout << ans << endl;
  66. }
  67.  
  68. int main() {
  69.     Bismillah
  70. //    cout << (1<<18)*18*5 << endl;
  71.     ll t=1;
  72.     cin >> t;
  73.     while (t--) {
  74.         solve();
  75.     }
  76.     return 0;
  77. }
  78.  
  79.  
Advertisement
Add Comment
Please, Sign In to add comment