Submission

Status:

[PPPPPP-SSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: Brabra475

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-11 22:09:55

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

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int n,m;
    cin>>n>>m;
    vector<vector<int>> grid(n,vector<int> (m));
    for(int i =0;i<n;i++){
        for(int j=0;j<m;j++){
            cin>>grid[i][j];
        }
    }

    vector<vector<int>> dp(n,vector<int> (m,1e9+7));

    for(int i =n-1;i>=0;i--){
        for(int j=m-1;j>=0;j--){
            if(j==m-1 && i==n-1){
                dp[i][j]=max(1,-grid[i][j]);
            }else if(i==n-1){
                dp[i][j]=max(1,dp[i][j+1]-grid[i][j]);
            }else if(j==m-1){
                dp[i][j]=max(1,dp[i+1][j]-grid[i][j]);
            }else{
                dp[i][j]=max(1,min(dp[i+1][j],dp[i][j+1])-grid[i][j]);
            }
        }
    }
    cout<<dp[0][0];
}