Submission
Status:
[PPPxSSSSSSSSSSS]
Score: 0
User: krittaphot
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.002 second
Submitted On: 2025-03-16 15:30:32
#include <bits/stdc++.h>
using namespace std;
int main()
{
int n,m;
cin >> n >> m;
vector<vector<int>> v(n,vector<int> (m));
for(int i = 0;i<n;i++){
for(int j = 0;j<m;j++){
cin >> v[i][j];
}
}
vector<vector<int>> dp(n,vector<int> (m));
for(int i = n-1;i>=0;i--){
for(int j = n-1;j>=0;j--){
if(i == n-1 && j == n-1){
dp[i][j] = max(1,1-v[i][j]);
}
else if(i == n-1){
dp[i][j] = max(1,dp[i][j+1]-v[i][j]);
}
else if(j == m-1){
dp[i][j] = max(1,dp[i+1][j]-v[i][j]);
}
else{
dp[i][j] = max(1,min(dp[i+1][j],dp[i][j+1])-v[i][j]);
}
}
}
cout << dp[0][0];
}