Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: letdown
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.080 second
Submitted On: 2026-03-14 13:45:01
#include <bits/stdc++.h>
#define int long long
using namespace std;
signed main() {
cin.tie(0)->sync_with_stdio(0);
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+2, vector<int>(m+2, LLONG_MAX));
dp[n-1][m-1] = max(1LL, 1LL - v[n-1][m-1]);
for (int i = n-1; i >= 0; i--) {
for (int j = m-1; j >= 0; j--) {
if (i == n-1 && j == m-1) continue;
int need = min(dp[i+1][j], dp[i][j+1]);
dp[i][j] = max(1LL, need - v[i][j]);
}
}
cout << dp[0][0];
}