結果
問題 | No.2708 Jewel holder |
ユーザー | Kee |
提出日時 | 2024-03-31 22:36:44 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 54 ms / 2,000 ms |
コード長 | 1,743 bytes |
コンパイル時間 | 209 ms |
コンパイル使用メモリ | 82,256 KB |
実行使用メモリ | 63,320 KB |
最終ジャッジ日時 | 2024-09-30 21:29:10 |
合計ジャッジ時間 | 1,852 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 47 ms
55,308 KB |
testcase_01 | AC | 48 ms
55,376 KB |
testcase_02 | AC | 45 ms
55,636 KB |
testcase_03 | AC | 45 ms
55,612 KB |
testcase_04 | AC | 45 ms
55,376 KB |
testcase_05 | AC | 46 ms
55,440 KB |
testcase_06 | AC | 46 ms
55,904 KB |
testcase_07 | AC | 46 ms
57,040 KB |
testcase_08 | AC | 46 ms
56,468 KB |
testcase_09 | AC | 49 ms
56,392 KB |
testcase_10 | AC | 46 ms
55,292 KB |
testcase_11 | AC | 46 ms
56,152 KB |
testcase_12 | AC | 46 ms
55,188 KB |
testcase_13 | AC | 46 ms
55,184 KB |
testcase_14 | AC | 45 ms
55,100 KB |
testcase_15 | AC | 46 ms
55,112 KB |
testcase_16 | AC | 45 ms
54,516 KB |
testcase_17 | AC | 54 ms
62,472 KB |
testcase_18 | AC | 52 ms
63,320 KB |
testcase_19 | AC | 51 ms
61,704 KB |
ソースコード
#!/usr/bin/python3 import bisect import collections import heapq import itertools import math import os import sys def main(): h, w = read_ints() A = [inp() for _ in range(h)] n = h + w - 1 dp = list3d(h, w, n + 1, 0) dp[0][0][1] = 1 for y in range(h): for x in range(w): for c in range(n): v = dp[y][x][c] if x + 1 < w: ch = A[y][x + 1] if ch == 'o': dp[y][x + 1][c + 1] += v elif ch == 'x' and c > 0: dp[y][x + 1][c - 1] += v if y + 1 < h: ch = A[y + 1][x] if ch == 'o': dp[y + 1][x][c + 1] += v elif ch == 'x' and c > 0: dp[y + 1][x][c - 1] += v ans = 0 for c in range(n + 1): ans += dp[h - 1][w - 1][c] print(ans) ############################################################################### DEBUG = 'DEBUG' in os.environ def inp(): return sys.stdin.readline().rstrip() def read_int(): return int(inp()) def read_ints(): return [int(e) for e in inp().split()] def list2d(d1, d2, init=None): return [[init] * d2 for _ in range(d1)] def list3d(d1, d2, d3, init=None): return [[[init] * d3 for _ in range(d2)] for _ in range(d1)] def list4d(d1, d2, d3, d4, init=None): return [[[[init] * d4 for _ in range(d3)] for _ in range(d2)] for _ in range(d1)] def debug(fmt, *args): if DEBUG: if args: print(fmt.format(*args), file=sys.stderr) else: print(fmt, file=sys.stderr) if __name__ == '__main__': main()