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