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;
}