Submission #16885434
Source Code Expand
#!/usr/bin/env python3
import sys
sys.setrecursionlimit(10**6)
INF = 10 ** 9 + 1 # sys.maxsize # float("inf")
MOD = 998244353
def debug(*x):
print(*x, file=sys.stderr)
def solve(N, K, SS):
count = [0] * (N + 10)
count[0] = 1
accum = [0] * (N + 10)
accum[0] = 1
for pos in range(1, N):
ret = 0
for left, right in SS:
# for i in range(left, right + 1):
# j = pos - i
# if j < 0:
# continue
# ret += count[j]
# ret %= MOD
start = max(-1, pos - right - 1)
end = max(-1, pos - left)
# debug("end, start", end, start)
ret += (accum[end] - accum[start])
ret %= MOD
# debug("pos, ret", pos, ret)
count[pos] = ret
accum[pos] = accum[pos - 1] + ret
# ret = f(N - 1)
ret = count[N - 1]
return ret % MOD
def main():
# parse input
N, K = map(int, input().split())
SS = []
for i in range(K):
SS.append(tuple(map(int, input().split())))
print(solve(N, K, SS))
# tests
T1 = """
5 2
1 1
3 4
"""
TEST_T1 = """
>>> as_input(T1)
>>> main()
4
"""
T2 = """
5 2
3 3
5 5
"""
TEST_T2 = """
>>> as_input(T2)
>>> main()
0
"""
T3 = """
5 1
1 2
"""
TEST_T3 = """
>>> as_input(T3)
>>> main()
5
"""
T4 = """
60 3
5 8
1 3
10 15
"""
TEST_T4 = """
>>> as_input(T4)
>>> main()
221823067
"""
T5 = """
10 1
1 2
"""
TEST_T5 = """
>>> as_input(T5)
>>> main()
55
"""
def _test():
import doctest
doctest.testmod()
g = globals()
for k in sorted(g):
if k.startswith("TEST_"):
doctest.run_docstring_examples(g[k], g, name=k)
def as_input(s):
"use in test, use given string as input file"
import io
f = io.StringIO(s.strip())
g = globals()
g["input"] = lambda: bytes(f.readline(), "ascii")
g["read"] = lambda: bytes(f.read(), "ascii")
input = sys.stdin.buffer.readline
read = sys.stdin.buffer.read
if sys.argv[-1] == "-t":
print("testing")
_test()
sys.exit()
main()
Submission Info
| Submission Time |
|
| Task |
D - Leaping Tak |
| User |
nishiohirokazu |
| Language |
PyPy3 (7.3.0) |
| Score |
400 |
| Code Size |
2208 Byte |
| Status |
AC |
| Exec Time |
108 ms |
| Memory |
76800 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
400 / 400 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
s1.txt, s2.txt, s3.txt, s4.txt |
| All |
01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, s1.txt, s2.txt, s3.txt, s4.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 01.txt |
AC |
83 ms |
62140 KiB |
| 02.txt |
AC |
55 ms |
62152 KiB |
| 03.txt |
AC |
52 ms |
62068 KiB |
| 04.txt |
AC |
50 ms |
62124 KiB |
| 05.txt |
AC |
57 ms |
62008 KiB |
| 06.txt |
AC |
55 ms |
61884 KiB |
| 07.txt |
AC |
57 ms |
62100 KiB |
| 08.txt |
AC |
53 ms |
62076 KiB |
| 09.txt |
AC |
57 ms |
62204 KiB |
| 10.txt |
AC |
60 ms |
62148 KiB |
| 11.txt |
AC |
49 ms |
61936 KiB |
| 12.txt |
AC |
108 ms |
76644 KiB |
| 13.txt |
AC |
68 ms |
76424 KiB |
| 14.txt |
AC |
102 ms |
76472 KiB |
| 15.txt |
AC |
90 ms |
76616 KiB |
| 16.txt |
AC |
90 ms |
76404 KiB |
| 17.txt |
AC |
88 ms |
76628 KiB |
| 18.txt |
AC |
99 ms |
76688 KiB |
| 19.txt |
AC |
91 ms |
76736 KiB |
| 20.txt |
AC |
80 ms |
76800 KiB |
| 21.txt |
AC |
64 ms |
73964 KiB |
| 22.txt |
AC |
67 ms |
76340 KiB |
| 23.txt |
AC |
74 ms |
76652 KiB |
| 24.txt |
AC |
85 ms |
76372 KiB |
| s1.txt |
AC |
56 ms |
62180 KiB |
| s2.txt |
AC |
58 ms |
62168 KiB |
| s3.txt |
AC |
57 ms |
62228 KiB |
| s4.txt |
AC |
58 ms |
62288 KiB |