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