Submission #31278042
Source Code Expand
MOD = 100000
w, h = map(int, input().split())
dp = [[[[0] * 2 for i in range(2)] for j in range(h)] for k in range(w)]
# dp[i][j][k][l] = 西から i 番目,南から j 番目の交差点に k の向き (0 = 東向き,1 = 北向き) で辿り着く場合の数
# ただし l = 1 の場合はこの交差点で向きを変えたことを表す
dp[0][0][0][0] = 1
dp[0][0][1][0] = 1
for i in range(w):
for j in range(h):
if i > 0:
dp[i][j][0][0] = (dp[i - 1][j][0][0] + dp[i - 1][j][0][1]) % MOD
dp[i][j][1][1] = dp[i - 1][j][0][0]
if j > 0:
dp[i][j][1][0] = (dp[i][j - 1][1][0] + dp[i][j - 1][1][1]) % MOD
dp[i][j][0][1] = dp[i][j - 1][1][0]
print((dp[w - 1][h - 1][0][0] + dp[w - 1][h - 1][1][0]) % MOD)
Submission Info
| Submission Time | |
|---|---|
| Task | E - 通勤経路 |
| User | Pro_ktmr |
| Language | PyPy3 (7.3.0) |
| Score | 100 |
| Code Size | 790 Byte |
| Status | AC |
| Exec Time | 72 ms |
| Memory | 75688 KiB |
Judge Result
| Set Name | set01 | set02 | set03 | set04 | set05 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | 20 / 20 | ||||||||||
| Status |
|
|
|
|
|
| Set Name | Test Cases |
|---|---|
| set01 | data1 |
| set02 | data2 |
| set03 | data3 |
| set04 | data4 |
| set05 | data5 |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| data1 | AC | 62 ms | 62236 KiB |
| data2 | AC | 49 ms | 62364 KiB |
| data3 | AC | 54 ms | 62876 KiB |
| data4 | AC | 69 ms | 75684 KiB |
| data5 | AC | 72 ms | 75688 KiB |