Submission

Status:

[PPPP-SSSSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: navysrimuang

Problemset: อัศวินขี่ม้าขาว

Language: cpp

Time: 0.002 second

Submitted On: 2026-03-12 22:14:11

#include<bits/stdc++.h>
using namespace std;

int main(){
	int n,m;
	cin >> n >> m;
	vector<vector<int>> v(n+2,vector<int>(m+2)), dp(n+2,vector<int>(m+2,1e9));

	for(int i = 1;i<=n;i++){
		for(int j = 1;j<=m;j++){
			cin >> v[i][j];
		}
	}

	dp[n][m] = min(1,1-v[n][m]);

	for(int i = n;i>0;i--){
		for(int j = m;j>0;j--){
			if(i == n && j == m) continue;
			int need = min(dp[i+1][j],dp[i][j+1]);
			dp[i][j] = max(1,need-v[i][j]);
		}
	}

	cout << dp[1][1] << "\n";
	return 0;
}