Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: SnowAveNode
Problemset: อัศวินขี่ม้าขาว
Language: python
Time: 0.842 second
Submitted On: 2026-04-22 15:51:31
import sys
input = sys.stdin.readline
n,m=map(int,input().split())
grid=[list(map(int,input().split())) for _ in range(n)]
dp=[[float('inf')]*(m+1) for _ in range(n+1)]
for i in range(n,0,-1):
for j in range(m,0,-1):
if i==n and j==m:
dp[i][j]=max(1,1-grid[i-1][j-1])
elif i==n:
dp[i][j]=max(1,dp[i][j+1]-grid[i-1][j-1])
elif j==m:
dp[i][j]=max(1,dp[i+1][j]-grid[i-1][j-1])
else:
dp[i][j]=max(1,min(dp[i+1][j],dp[i][j+1])-grid[i-1][j-1])
print(dp[1][1])