Submission
Status:
Compilation Error
Score: 0
User: Heynewworld
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.000 second
Submitted On: 2025-03-14 04:35:44
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int N, M;
cin >> N >> M;
vector<vector<int>> grid(N+1, vector<int>(M+1));
for (int i = 1; i <= N; i++) {
for (int j = 1; j <= M; j++) {
cin >> grid[i][j];
}
}
vector<vector<int>> dp(N+1, vector<int>(M+1, INT_MAX));
dp[N][M] = max(1, 1 - grid[N][M]);
for (int i = N; i >= 1; i--) {
for (int j = M; j >= 1; j--) {
if (i == N && j == M) continue;
int rightHP = (j + 1 <= M) ? dp[i][j+1] : INT_MAX;
int downHP = (i + 1 <= N) ? dp[i+1][j] : INT_MAX;
int minNeededHP = min(rightHP, downHP);
dp[i][j] = max(1, minNeededHP - grid[i][j]);
}
}
cout << dp[1][1] << endl;
return 0;
}