Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Kx

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

Language: cpp

Time: 0.169 second

Submitted On: 2026-03-18 10:22:47

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

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

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

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

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

    cout << dp[1][1];

    return 0;
}