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])