Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- #define f first
- #define s second
- #define pb push_back
- #define mp make_pair
- #define ll long long
- #define IOS ios::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
- using namespace std;
- const int INF = 1e9 + 1;
- const int MOD = 1e9 + 7;
- const int MAXN = 6e4 + 10;
- const int L = 20;
- int dp[MAXN][10][128];
- int mods[20000];
- void solve(){
- int n, x;
- cin >> n >> x;
- for (int i = 0; i <= 9; i++){
- dp[1][i][i % x]++;
- }
- for (int i = 0; i < 20000; i++){
- mods[i] = i % x;
- }
- for (int i = 2; i <= n; i++){
- for (int j = 0; j <= 9; j++){
- for (int k = 0; k <= 9; k++){
- if (k == j) continue;
- for (int mod = 0; mod < x; mod++){
- int mod2 = mods[mod * 10 + j];
- dp[i][j][mod2] += dp[i - 1][k][mod];
- if (dp[i][j][mod2] >= MOD){
- dp[i][j][mod2] -= MOD;
- }
- }
- }
- }
- }
- int ans = 0;
- for (int i = 0; i <= 9; i++){
- ans += dp[n][i][0];
- if (ans >= MOD){
- ans -= MOD;
- }
- }
- cout << ans << "\n";
- }
- int main() {
- IOS;
- int t = 1;
- //cin >> t;
- while(t--){
- solve();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment