Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: tha_smith
Problemset: อัศวินขี่ม้าขาว
Language: cpp
Time: 0.055 second
Submitted On: 2026-02-28 14:40:58
#include <bits/stdc++.h>
using namespace std;
int N,M,mn,grid[1005][1005],dp[1005][1005];
int main() {
ios_base::sync_with_stdio(0),cin.tie(0);
cin >> N >> M;
for(int i=1; i<=N; i++) {
for(int j=1; j<=M; j++) {
cin >> grid[i][j];
}
}
dp[N][M] = max(0,-grid[N][M]);
for(int i=N; i>=1; i--) {
for(int j=M; j>=1; j--) {
mn = INT_MAX;
if(i==N && j==M)
continue;
if(i<N)
mn = min(mn,dp[i+1][j]);
if(j<M)
mn = min(mn,dp[i][j+1]);
dp[i][j] = max(0,mn-grid[i][j]);
}
}
cout << dp[1][1]+1;
}