Submission #5890879


Source Code Expand

#include <bits/stdc++.h>
#define BASE 1000000007
using namespace std;

int main() {
    int d;
    string n;
    cin >> d >> n;
    int m = n.size();
    long dp[2][d][m + 1];
    for (int j = 0; j <= m; j++) {
        for (int i = 0; i < d; i++) {
            dp[0][i][j] = 0;
            dp[1][i][j] = 0;
        }
    }
    dp[1][0][0] = 1;
    for (int i = 1; i <= m; i++) {
        for (int j = 0; j < d; j++) {
            for (int k = 0; k < n[i - 1] - '0'; k++) {
                dp[0][(j + k) % d][i] += (dp[0][j][i - 1] + dp[1][j][i - 1]) % BASE;
                dp[0][(j + k) % d][i] %= BASE;
            }
            dp[0][(j + n[i - 1] - '0') % d][i] += dp[0][j][i - 1];
            dp[0][(j + n[i - 1] - '0') % d][i] %= BASE;
            dp[1][(j + n[i - 1] - '0') % d][i] += dp[1][j][i - 1];
            dp[1][(j + n[i - 1] - '0') % d][i] %= BASE;
            for (int k = n[i - 1] - '0' + 1; k < 10; k++) {
                dp[0][(j + k) % d][i] += dp[0][j][i - 1];
                dp[0][(j + k) % d][i] %= BASE;
            }
        }
    }
    cout << (BASE - 1 + dp[0][0][m] + dp[1][0][m]) % BASE << endl;
    return 0;
}

Submission Info

Submission Time
Task E - 数
User hi_watana
Language C++14 (GCC 5.4.1)
Score 4
Code Size 1178 Byte
Status AC
Exec Time 77 ms
Memory 15488 KB

Judge Result

Set Name All
Score / Max Score 4 / 4
Status
AC × 5
Set Name Test Cases
All 00, 01, 02, 90, 91
Case Name Status Exec Time Memory
00 AC 2 ms 384 KB
01 AC 46 ms 9344 KB
02 AC 77 ms 15488 KB
90 AC 1 ms 256 KB
91 AC 1 ms 256 KB