Submission #32588657
Source Code Expand
from itertools import accumulate
def kaisetsu3(N, B, K, c):
MOD = 1000000007
*ten, = accumulate(range(10, 72), lambda acc, _: (acc ** 2) % B)
def mul(x, exp, y):
res = [0] * B
for p in range(B):
for q in range(B):
nex = (ten[exp] * p + q) % B
res[nex] += x[p] * y[q]
res[nex] %= MOD
return res
# dp[1][i] を求める
doubled = [0] * B
for k in c:
doubled[k%B] += 1
if N & 1:
ans = doubled
else:
ans = [0] * B
ans[0] = 1
N >>= 1
exp = 0
while N:
# 2^epx桁目から2^(exp+1)桁目を計算
doubled = mul(doubled, exp, doubled)
exp += 1
if N & 1:
ans = mul(ans, exp, doubled)
N >>= 1
return ans[0]
N, B, K, *c = map(int, open(0).read().split())
print(kaisetsu3(N, B, K, c))
Submission Info
| Submission Time | |
|---|---|
| Task | 005 - Restricted Digits(★7) |
| User | arakaki_tokyo |
| Language | PyPy3 (7.3.0) |
| Score | 7 |
| Code Size | 970 Byte |
| Status | AC |
| Exec Time | 2784 ms |
| Memory | 73664 KiB |
Judge Result
| Set Name | Sample | Subtask1 | Subtask2 | Subtask3 | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 1 / 1 | 3 / 3 | 3 / 3 | ||||||||
| Status |
|
|
|
|
| Set Name | Test Cases |
|---|---|
| Sample | subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask02_01_sample_04.txt, subtask03_01_sample_05.txt |
| Subtask1 | subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask01_02_hand_01.txt, subtask01_02_hand_02.txt, subtask01_02_hand_03.txt, subtask01_02_hand_04.txt, subtask01_02_hand_05.txt, subtask01_02_hand_06.txt, subtask01_02_hand_07.txt, subtask01_02_hand_08.txt, subtask01_03_random_01.txt, subtask01_03_random_02.txt, subtask01_03_random_03.txt, subtask01_03_random_04.txt, subtask01_03_random_05.txt, subtask01_03_random_06.txt, subtask01_03_random_07.txt, subtask01_04_max_07.txt |
| Subtask2 | subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask01_02_hand_01.txt, subtask01_02_hand_02.txt, subtask01_02_hand_03.txt, subtask01_02_hand_04.txt, subtask01_02_hand_05.txt, subtask01_02_hand_06.txt, subtask01_02_hand_07.txt, subtask01_02_hand_08.txt, subtask01_03_random_01.txt, subtask01_03_random_02.txt, subtask01_03_random_03.txt, subtask01_03_random_04.txt, subtask01_03_random_05.txt, subtask01_03_random_06.txt, subtask01_03_random_07.txt, subtask01_04_max_07.txt, subtask02_01_sample_04.txt, subtask02_05_random_01.txt, subtask02_05_random_02.txt, subtask02_05_random_03.txt, subtask02_05_random_04.txt, subtask02_05_random_05.txt, subtask02_05_random_06.txt, subtask02_05_random_07.txt, subtask02_06_max_07.txt, subtask02_07_slow_doubling_killer_01.txt, subtask02_07_slow_doubling_killer_02.txt |
| Subtask3 | subtask01_01_sample_01.txt, subtask01_01_sample_02.txt, subtask01_01_sample_03.txt, subtask01_02_hand_01.txt, subtask01_02_hand_02.txt, subtask01_02_hand_03.txt, subtask01_02_hand_04.txt, subtask01_02_hand_05.txt, subtask01_02_hand_06.txt, subtask01_02_hand_07.txt, subtask01_02_hand_08.txt, subtask01_03_random_01.txt, subtask01_03_random_02.txt, subtask01_03_random_03.txt, subtask01_03_random_04.txt, subtask01_03_random_05.txt, subtask01_03_random_06.txt, subtask01_03_random_07.txt, subtask01_04_max_07.txt, subtask02_01_sample_04.txt, subtask02_05_random_01.txt, subtask02_05_random_02.txt, subtask02_05_random_03.txt, subtask02_05_random_04.txt, subtask02_05_random_05.txt, subtask02_05_random_06.txt, subtask02_05_random_07.txt, subtask02_06_max_07.txt, subtask02_07_slow_doubling_killer_01.txt, subtask02_07_slow_doubling_killer_02.txt, subtask03_01_sample_05.txt, subtask03_08_random_01.txt, subtask03_08_random_02.txt, subtask03_08_random_03.txt, subtask03_08_random_04.txt, subtask03_08_random_05.txt, subtask03_08_random_06.txt, subtask03_08_random_07.txt, subtask03_09_max_07.txt, subtask03_10_slow_doubling_killer_01.txt, subtask03_10_slow_doubling_killer_02.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| subtask01_01_sample_01.txt | AC | 61 ms | 62248 KiB |
| subtask01_01_sample_02.txt | AC | 50 ms | 62280 KiB |
| subtask01_01_sample_03.txt | AC | 54 ms | 65384 KiB |
| subtask01_02_hand_01.txt | AC | 53 ms | 62068 KiB |
| subtask01_02_hand_02.txt | AC | 48 ms | 62292 KiB |
| subtask01_02_hand_03.txt | AC | 48 ms | 62064 KiB |
| subtask01_02_hand_04.txt | AC | 53 ms | 65852 KiB |
| subtask01_02_hand_05.txt | AC | 48 ms | 62344 KiB |
| subtask01_02_hand_06.txt | AC | 48 ms | 62260 KiB |
| subtask01_02_hand_07.txt | AC | 44 ms | 64276 KiB |
| subtask01_02_hand_08.txt | AC | 46 ms | 62140 KiB |
| subtask01_03_random_01.txt | AC | 52 ms | 64560 KiB |
| subtask01_03_random_02.txt | AC | 54 ms | 66500 KiB |
| subtask01_03_random_03.txt | AC | 58 ms | 65384 KiB |
| subtask01_03_random_04.txt | AC | 53 ms | 65424 KiB |
| subtask01_03_random_05.txt | AC | 56 ms | 66824 KiB |
| subtask01_03_random_06.txt | AC | 51 ms | 65408 KiB |
| subtask01_03_random_07.txt | AC | 53 ms | 65236 KiB |
| subtask01_04_max_07.txt | AC | 56 ms | 65468 KiB |
| subtask02_01_sample_04.txt | AC | 58 ms | 65984 KiB |
| subtask02_05_random_01.txt | AC | 54 ms | 65756 KiB |
| subtask02_05_random_02.txt | AC | 55 ms | 66012 KiB |
| subtask02_05_random_03.txt | AC | 50 ms | 62220 KiB |
| subtask02_05_random_04.txt | AC | 58 ms | 68516 KiB |
| subtask02_05_random_05.txt | AC | 54 ms | 66016 KiB |
| subtask02_05_random_06.txt | AC | 55 ms | 65860 KiB |
| subtask02_05_random_07.txt | AC | 53 ms | 65828 KiB |
| subtask02_06_max_07.txt | AC | 54 ms | 66024 KiB |
| subtask02_07_slow_doubling_killer_01.txt | AC | 57 ms | 66028 KiB |
| subtask02_07_slow_doubling_killer_02.txt | AC | 57 ms | 66036 KiB |
| subtask03_01_sample_05.txt | AC | 1832 ms | 73472 KiB |
| subtask03_08_random_01.txt | AC | 900 ms | 73600 KiB |
| subtask03_08_random_02.txt | AC | 400 ms | 69756 KiB |
| subtask03_08_random_03.txt | AC | 176 ms | 68160 KiB |
| subtask03_08_random_04.txt | AC | 1755 ms | 73552 KiB |
| subtask03_08_random_05.txt | AC | 1885 ms | 73492 KiB |
| subtask03_08_random_06.txt | AC | 2007 ms | 73532 KiB |
| subtask03_08_random_07.txt | AC | 2006 ms | 73512 KiB |
| subtask03_09_max_07.txt | AC | 2017 ms | 73664 KiB |
| subtask03_10_slow_doubling_killer_01.txt | AC | 2776 ms | 73396 KiB |
| subtask03_10_slow_doubling_killer_02.txt | AC | 2784 ms | 73636 KiB |