fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. typedef unsigned long long ll;
  4.  
  5. string s;
  6. ll dp[65][65][2];
  7. ll solve(int i, int ones, bool state){
  8. if(i==s.size())
  9. return ones==4||ones==7||ones==44||ones==47;
  10. ll &r=dp[i][ones][state];
  11. if(r!=-1) return r;
  12. r=0;
  13. for(char c='0';c<='1';c++){
  14. if(state&&c>s[i]) break;
  15. r+=solve(i+1, c=='1'?ones+1:ones, state&&c==s[i]);
  16. }
  17. return r;
  18. }
  19.  
  20. int main() {
  21. ll t, a, b;
  22. cin>>t;
  23. while(t--){
  24. cin>>a>>b;
  25. a--;
  26. memset(dp, -1, sizeof(dp));
  27. {bitset<64> bit(a);s=bit.to_string();}
  28. ll A = solve(0, 0, 1);
  29. {bitset<64> bit(b);s=bit.to_string();}
  30. memset(dp, -1, sizeof(dp));
  31. ll B = solve(0, 0, 1);
  32. cout<<(B-A)<<endl;
  33. }
  34. return 0;
  35. }
Success #stdin #stdout 0s 3500KB
stdin
2
15 15
63 63
stdout
1
0