sandeep03edu

C. Add One

Aug 3rd, 2022 (edited)
169
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #pragma GCC target ("avx2")
  5. #pragma GCC optimization ("O3")
  6. #pragma GCC optimization ("unroll-loops")
  7. #define ll  long long
  8. #define MOD 1000000007;
  9.  
  10. #define got cout<<"YES\n"; return;
  11. #define got0 cout<<"YES\n"; return 0;
  12.  
  13. #define bhak cout<<"NO\n"; return;
  14. #define bhak0 cout<<"NO\n"; return 0;
  15.  
  16. #define bas cout<<"\n";
  17.  
  18.  
  19. void solve();
  20.  
  21. // https://codeforces.com/problemset/problem/1513/C
  22.  
  23.  
  24.  
  25. vector<vector<ll>> dp(10, vector<ll> (200005+1, 1));
  26. void setSieve(){
  27.     for(ll j=1; j<=200000; ++j){
  28.         for(ll i=0; i<10; ++i){
  29.             if(i<9){
  30.                 dp[i][j] = dp[i+1][j-1];
  31.             }
  32.             else{
  33.                 dp[i][j] = dp[0][j-1]%MOD + dp[1][j-1]%MOD;
  34.                 dp[i][j]%=MOD;
  35.             }
  36.         }
  37.     }
  38.  
  39. }
  40.  
  41. int main() {
  42.     ios_base::sync_with_stdio(false);
  43.     cin.tie(NULL);
  44.     cout.tie(NULL);
  45.  
  46.     ll t;
  47.     t=1;
  48.     cin>>t;
  49.     setSieve();
  50.     while(t--){
  51.         solve();
  52.     }
  53.  
  54.     return 0;
  55. }
  56.  
  57. void solve(){
  58.     ll n, m; cin>>n>>m;
  59.     ll ans = 0;
  60.    
  61.     while(n){
  62.         ll dig = n%10;
  63.         ans += dp[dig][m]%MOD;
  64.         ans %= MOD;
  65.         n/=10;
  66.     }
  67.    
  68.     cout<<ans<<endl;
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment