結果
問題 | No.1948 足し算するだけのパズルゲーム(1) |
ユーザー |
👑 ![]() |
提出日時 | 2022-05-20 21:54:00 |
言語 | PyPy3 (7.3.15) |
結果 |
AC
|
実行時間 | 213 ms / 2,000 ms |
コード長 | 886 bytes |
コンパイル時間 | 296 ms |
コンパイル使用メモリ | 82,176 KB |
実行使用メモリ | 113,152 KB |
最終ジャッジ日時 | 2024-09-20 07:57:46 |
合計ジャッジ時間 | 4,288 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 27 |
ソースコード
H,W=map(int,input().split()) A=["*"] for _ in range(H): A.append(["*"]+list(map(int,input().split()))) inf=float("inf"); huge=2*10**9 DP=[[[-inf,-inf] for _ in range(W+1)] for _ in range(H+1)] for i in range(1,H+1): for j in range(1,W+1): if i==j==1: DP[i][j]=[A[1][1],-inf] continue if max(DP[i-1][j][0],DP[i][j-1][0])>A[i][j]: DP[i][j][0]=max(DP[i-1][j][0],DP[i][j-1][0])+A[i][j] else: DP[i][j][1]=max(DP[i-1][j][0],DP[i][j-1][0]) if max(DP[i-1][j][1],DP[i][j-1][1])>A[i][j]: DP[i][j][1]=max(DP[i][j][1], max(DP[i-1][j][1],DP[i][j-1][1])+A[i][j]) if DP[i][j][0]>huge: DP[i][j][0]=inf if DP[i][j][1]>huge: DP[i][j][1]=inf if max(DP[H-1][W][0], DP[H-1][W][1], DP[H][W-1][0], DP[H][W-1][1])>A[H][W]: print("Yes") else: print("No")