Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: Brabra475
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.077 second
Submitted On: 2026-03-11 22:12:09
#include<bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin>>n>>m;
vector<vector<int>> grid(n,vector<int> (m));
for(int i =0;i<n;i++){
for(int j=0;j<m;j++){
cin>>grid[i][j];
}
}
vector<vector<int>> dp(n,vector<int> (m,1e9+7));
for(int i =n-1;i>=0;i--){
for(int j=m-1;j>=0;j--){
if(j==m-1 && i==n-1){
dp[i][j]=max(1,1-grid[i][j]);
}else if(i==n-1){
dp[i][j]=max(1,dp[i][j+1]-grid[i][j]);
}else if(j==m-1){
dp[i][j]=max(1,dp[i+1][j]-grid[i][j]);
}else{
dp[i][j]=max(1,min(dp[i+1][j],dp[i][j+1])-grid[i][j]);
}
}
}
cout<<dp[0][0];
}