提出 #15082801
ソースコード 拡げる
#!/usr/bin/env python3
#from collections import defaultdict
#from heapq import heappush, heappop
import sys
sys.setrecursionlimit(10**6)
input = sys.stdin.buffer.readline
INF = 10 ** 9 + 1 # sys.maxsize # float("inf")
MOD = 10 ** 9 + 7
def debug(*x):
print(*x, file=sys.stderr)
def solve(K, D):
K = [x - ord("0") for x in K]
N = len(K)
less = [[0] * D for i in range(N + 1)]
border = 0
debug(": K, N", K, N)
debug(": less", less)
for i in range(N):
for j in range(10):
for d in range(D):
less[i][(d + j) % D] += less[i - 1][d]
less[i][(d + j) % D] %= MOD
if j < K[i]:
less[i][(border + j) % D] += 1
border += K[i]
border %= D
debug(": less", less)
ret = less[N - 1][0] - 1
ret += (border == 0)
return ret % MOD
def main():
# parse input
K = input().strip()
D = int(input())
print(solve(K, D))
# tests
T1 = """
30
4
"""
def test_T1():
"""
>>> as_input(T1)
>>> main()
6
"""
T2 = """
1000000009
1
"""
def test_T2():
"""
>>> as_input(T2)
>>> main()
2
"""
T3 = """
98765432109876543210
58
"""
def test_T3():
"""
>>> as_input(T3)
>>> main()
635270834
"""
T4 = """
555
1
"""
def test_T4():
"""
>>> as_input(T4)
>>> main()
555
"""
T6 = """
5
1
"""
def test_T6():
"""
>>> as_input(T6)
>>> main()
5
"""
# add tests above
def _test():
import doctest
doctest.testmod()
def as_input(s):
"use in test, use given string as input file"
import io
global read, input
f = io.StringIO(s.strip())
def input():
return bytes(f.readline(), "ascii")
def read():
return bytes(f.read(), "ascii")
USE_NUMBA = False
if (USE_NUMBA and sys.argv[-1] == 'ONLINE_JUDGE') or sys.argv[-1] == '-c':
print("compiling")
from numba.pycc import CC
cc = CC('my_module')
cc.export('solve', solve.__doc__.strip().split()[0])(solve)
cc.compile()
exit()
else:
input = sys.stdin.buffer.readline
read = sys.stdin.buffer.read
if (USE_NUMBA and sys.argv[-1] != '-p') or sys.argv[-1] == "--numba":
# -p: pure python mode
# if not -p, import compiled module
from my_module import solve # pylint: disable=all
elif sys.argv[-1] == "-t":
print("testing")
_test()
sys.exit()
elif sys.argv[-1] != '-p' and len(sys.argv) == 2:
# input given as file
input_as_file = open(sys.argv[1])
input = input_as_file.buffer.readline
read = input_as_file.buffer.read
main()
提出情報
| 提出日時 | |
|---|---|
| 問題 | S - Digit Sum |
| ユーザ | nishiohirokazu |
| 言語 | PyPy3 (7.3.0) |
| 得点 | 100 |
| コード長 | 2845 Byte |
| 結果 | AC |
| 実行時間 | 389 ms |
| メモリ | 153160 KiB |
ジャッジ結果
| セット名 | All | ||
|---|---|---|---|
| 得点 / 配点 | 100 / 100 | ||
| 結果 |
|
| セット名 | テストケース |
|---|---|
| All | 0_00, 0_01, 0_02, 1_00, 1_01, 1_02, 1_03, 1_04, 1_05, 1_06, 1_07, 1_08, 1_09, 1_10, 1_11, 1_12, 1_13, 1_14, 1_15, 1_16, 1_17, 1_18, 1_19, 1_20, 1_21 |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| 0_00 | AC | 74 ms | 62192 KiB |
| 0_01 | AC | 58 ms | 62576 KiB |
| 0_02 | AC | 61 ms | 65788 KiB |
| 1_00 | AC | 54 ms | 62432 KiB |
| 1_01 | AC | 57 ms | 62732 KiB |
| 1_02 | AC | 87 ms | 75184 KiB |
| 1_03 | AC | 389 ms | 153160 KiB |
| 1_04 | AC | 374 ms | 149136 KiB |
| 1_05 | AC | 330 ms | 138332 KiB |
| 1_06 | AC | 348 ms | 142280 KiB |
| 1_07 | AC | 330 ms | 138284 KiB |
| 1_08 | AC | 384 ms | 151704 KiB |
| 1_09 | AC | 380 ms | 151348 KiB |
| 1_10 | AC | 377 ms | 149972 KiB |
| 1_11 | AC | 362 ms | 143368 KiB |
| 1_12 | AC | 340 ms | 141724 KiB |
| 1_13 | AC | 382 ms | 150556 KiB |
| 1_14 | AC | 382 ms | 150992 KiB |
| 1_15 | AC | 377 ms | 150216 KiB |
| 1_16 | AC | 356 ms | 144560 KiB |
| 1_17 | AC | 385 ms | 150524 KiB |
| 1_18 | AC | 327 ms | 136536 KiB |
| 1_19 | AC | 333 ms | 139212 KiB |
| 1_20 | AC | 61 ms | 62584 KiB |
| 1_21 | AC | 58 ms | 62472 KiB |