Submission #49382578


Source Code Expand

#include<bits/stdc++.h>
using namespace std;
#define ll long long

ll N, dp[16][130][130][130][2];
int main() {
    cin >> N;
    // 初期化
    for (int s = 1; s <= 9 * 14; s++) dp[0][s][0][0][0] = 1;

    ll pow10 = 1;
    for (int d = 0; d < 15; d ++) {
        int n = N % 10;
        for (int s = 1; s <= 9 * 14; s++) {
            for (int i = 0; i <= 9 * 14; i++) {
                for (int j = 0; j < s; j++) {
                    for (int f = 0; f < 2; f++) {
                        for (int t = 0; t < 10; t++) {
                            if (i + t > s) break;
                            int nf = 2 * n < 2 * t + f;
                            dp[d + 1][s][i + t][(pow10 * t + j) % s][nf] += dp[d][s][i][j][f];
                        }
                    }
                }
            }
        }
        N /= 10;
        pow10 *= 10;
    }

    ll ans = 0;
    for (int s = 1; s <= 9 * 14; s++) ans += dp[15][s][s][0][0];
    cout << ans << '\n';
}

Submission Info

Submission Time
Task E - Digit Sum Divisible
User ikefumy
Language C++ 20 (gcc 12.2)
Score 525
Code Size 1002 Byte
Status AC
Exec Time 680 ms
Memory 257312 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 525 / 525
Status
AC × 3
AC × 9
Set Name Test Cases
Sample 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt
All 00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 02_max_00.txt, 02_max_01.txt, 03_min_00.txt, 04_corner_00.txt
Case Name Status Exec Time Memory
00_sample_00.txt AC 679 ms 257212 KiB
00_sample_01.txt AC 679 ms 257176 KiB
00_sample_02.txt AC 678 ms 257224 KiB
01_random_00.txt AC 679 ms 257312 KiB
01_random_01.txt AC 678 ms 257120 KiB
02_max_00.txt AC 679 ms 257084 KiB
02_max_01.txt AC 676 ms 257276 KiB
03_min_00.txt AC 680 ms 257180 KiB
04_corner_00.txt AC 678 ms 257276 KiB