Guest User

c.cpp

a guest
Mar 5th, 2026
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. #define ll long long
  4. using namespace std;
  5.  
  6. const int MAXN = 1e5 + 10;
  7. const int MOD = 1e9 + 7;
  8.  
  9. ll bin_power(ll x, ll y){
  10.     if (y == 0)
  11.         return 1;
  12.     if (y & 1){
  13.         return (bin_power(x, y - 1) * x) % MOD;
  14.     }
  15.     ll z = bin_power(x, y >> 1);
  16.     return (z * z) % MOD;
  17. }
  18.  
  19. ll calc(ll x){
  20.     ll y = x;
  21.     vector <int> vec;
  22.     while(y){
  23.         vec.push_back(y % 10);
  24.         y /= 10;
  25.     }
  26.     reverse(vec.begin(), vec.end());
  27.     vector <ll> ans(10, 0);
  28.  
  29.     int len = vec.size();
  30.     int mx = 0;
  31.     for (int i = 0; i < len; i++){
  32.         for (int j = 0; j < vec[i]; j++){
  33.             if (len - i - 1 == 0){
  34.                 (ans[max(j, mx)] += 1) %= MOD;
  35.             }
  36.             else{
  37.                 for (int k = 0; k <= 9; k++){
  38.                      (ans[max(k, max(j, mx))] += (bin_power(k + 1, len - i - 1)
  39.                                     - bin_power(k, len - i - 1) + MOD) % MOD) %= MOD;
  40.                 }
  41.             }
  42.         }
  43.         mx = max(mx, vec[i]);
  44.     }
  45.  
  46.     ans[mx]++;
  47.     ll answer = 0;
  48.     for (int i = 0; i <= 9; i++){
  49.         (answer += (i * ans[i]) % MOD) %= MOD;
  50.     }
  51.     return answer;
  52.  
  53. }
  54.  
  55. int main(){
  56.  
  57.     ll l, r;
  58.     cin >> l >> r;
  59.     int sum = 0;
  60.   /*  for (int k = 1; k <= 9; k++)
  61.         sum += bin_power(k + 1, 3) - (bin_power(k, 3));
  62.     cout << sum;*/
  63.     //cout << calc(r) << ' ' <<  calc(l - 1) << endl;
  64.     cout << (calc(r) - calc(l - 1) + MOD) % MOD;
  65. }
  66.  
Advertisement
Add Comment
Please, Sign In to add comment