Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Banana777

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

Language: cpp

Time: 0.060 second

Submitted On: 2026-03-01 21:11:04

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

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

    int n,m;
    cin>>n>>m;

    vector<vector<int>> map(n+1,vector<int>(m+1));

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

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

    dp[n][m] = max(1,1-map[n][m]);

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

}