Submission

Status:
[PPPPPPPPPPPPPPP]

Score: 100

User: Nathlol2

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

Language: cpp

Time: 0.076 second

Submitted On: 2025-03-16 22:33:50

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

int32_t main(){
    ios::sync_with_stdio(false);
    cin.tie(0);

    int n, m;
    cin >> n >> m;
    vector<vector<int>> a(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 >> a[i][j];
        }
    }
    dp[n][m] = max(1, 1 - a[n][m]);
    for(int i = n;i>=1;i--){
        for(int j = m;j>=1;j--){
            if(i == n && j == m) continue;
            int mn = min(dp[i][j + 1], dp[i + 1][j]);
            dp[i][j] = max(1, mn - a[i][j]);
        }
    }
    cout << dp[1][1] << '\n';
}