Submission
Status:
[PPPPPPPPPPPPPPP]
Score: 100
User: Nightingale
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.075 second
Submitted On: 2025-03-27 23:09:14
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int a;
int b;
cin >> a >> b;
vector<vector<int>> maze(a,vector<int>(b,0));
vector<vector<int>> dp(a,vector<int>(b,0));
for(int i=0;i<a;i++){
for(int j=0;j<b;j++){
cin >> maze[i][j];
}
}
dp[a-1][b-1] = max(1,1-maze[a-1][b-1]);
for(int i=a-2;i>=0;i--){
dp[i][b-1] = max(1,dp[i+1][b-1]-maze[i][b-1]);
}
for(int i=b-2;i>=0;i--){
dp[a-1][i] = max(1,dp[a-1][i+1]-maze[a-1][i]);
}
for(int i=b-2;i>=0;i--){
for(int j=a-2;j>=0;j--){
dp[j][i] = max(1,min(dp[j+1][i],dp[j][i+1])-maze[j][i]);
}
}
cout << dp[0][0];
}