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 |
|
|
| 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 |