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);
}