Advertisement
cosenza987

Untitled

Jun 9th, 2022
873
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. // Date / Time: 2022-06-09 10:17:13
  2.  
  3. //Слава Україні, Героям слава 🇺🇦
  4.  
  5. #include <bits/stdc++.h>
  6.  
  7. using namespace std;
  8.  
  9. const int mod = 1e9 + 7;
  10.  
  11. long long binexp(long long a, long long n) {
  12.     long long res = 1;
  13.     while(n) {
  14.         if(n & 1) {
  15.             res = (res * a) % mod;
  16.         }
  17.          a = (a * a) % mod;
  18.          n >>= 1;
  19.     }
  20.     return res;
  21. }
  22.  
  23. int main() {
  24.     ios_base::sync_with_stdio(false);
  25.     cin.tie(0);
  26.     long long a1, a2, b1, b2, k;
  27.     cin >> a1 >> a2 >> b1 >> b2 >> k;
  28.     vector<long long> v;
  29.     for(int i = 1; i < (1 << 10); i++) {
  30.         int k = i;
  31.         long long a = 0;
  32.         while(k) {
  33.             if(k & 1) {
  34.                 a = (a * 10) + 3;
  35.             } else {
  36.                 a = (a * 10) + 8;
  37.             }
  38.             k >>= 1;
  39.         }
  40.         v.push_back(a);
  41.         k = i;
  42.         a = 0;
  43.         while(k) {
  44.             if(k & 1) {
  45.                 a = (a * 10) + 8;
  46.             } else {
  47.                 a = (a * 10) + 3;
  48.             }
  49.             k >>= 1;
  50.         }
  51.         v.push_back(a);
  52.     }
  53.     v.push_back(0);
  54.     sort(v.begin(), v.end());
  55.     long long tot = (a2 - a1 + 1);
  56.     tot = (tot * (b2 - b1 + 1)) % mod;
  57.     long long cur = 0;
  58.     for(int i = 1; i < (int)v.size() - k; i++) {
  59.         cur += (max(min(v[i], a2) - max(v[i - 1] + 1, a1) + 1, 0ll) * max(min(v[i + k] - 1, b2) - max(v[i + k - 1], b1) + 1, 0ll));
  60.         cur += (max(min(v[i], b2) - max(v[i - 1] + 1, b1) + 1, 0ll) * max(min(v[i + k] - 1, a2) - max(v[i + k - 1], a1) + 1, 0ll));
  61.         cur %= mod;
  62.     }
  63.     cout << (cur * binexp(tot, mod - 2)) % mod << "\n";
  64.     return 0;
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement