Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Hxluk.ka

Problemset: อัศวินขี่ม้าขาว

Language: cpp

Time: 0.094 second

Submitted On: 2026-01-03 22:52:31

#include <iostream>
#include <vector>
using namespace std;
#define ll long long
const int nx=1003, inf=2e9;
int mp[nx][nx], dp[nx][nx];
int n, m;
int main() {
    cin.tie(0)->sync_with_stdio(0);

    cin>>n>>m;
    for (int i=1; i<=n; i++) for (int j=1; j<=m; j++) cin>>mp[i][j];
    for (int i=0; i<=n+1; i++) for (int j=0; j<=m+1; j++) dp[i][j]=inf;
    
    dp[n][m]=max(1, 1-mp[n][m]);
    for (int i=n; i>0; i--) for (int j=m; j>0; j--) {
        if (i==n&&j==m) continue;
        dp[i][j]=max(1, min(dp[i+1][j], dp[i][j+1])-mp[i][j]);
    }

    cout<<dp[1][1];
}