Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: august

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

Language: cpp

Time: 0.060 second

Submitted On: 2026-03-11 11:23:09

#include <bits/stdc++.h>
using namespace std;

#define pi pair<int,int>
const int INF = 1e7+7, mx = 1e3+5;

int n,m;

int g[mx][mx], dp[mx][mx];

int dfs(int i, int j) {
    if (i==n && j==m) {
        return max(1, 1-g[i][j]);
    }
    if (i>n || j>m) return   INF;

    if (dp[i][j] != 0) return dp[i][j];
    int v1=dfs(i+1, j);
    int v2=dfs(i, j+1);
    dp[i][j] = max(1, min(v1, v2)-g[i][j]);
    return dp[i][j];

}


int32_t 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>> g[i][j];

    cout<< dfs(1, 1);
}