Submission

Status:

[PPPPPP-SSSSSSSS]

Subtask/Task Score:

{0/100}

Score: 0

User: C12

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

Language: cpp

Time: 0.003 second

Submitted On: 2026-03-07 22:56:51

#include <bits/stdc++.h>

using namespace std;

#define ll long long

ll dp[1001][1001];

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

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


    for(int i = n-1;i >= 0;i--){
        for(int j = m-1;j >= 0;j--){
            cin >> dp[i][j];
            dp[i][j] *= -1;
        }
    }
    
    dp[0][0] = dp[0][0] + 1;
    if(dp[0][0] < 1) dp[0][0] = 1;

    for(int i = 1;i < n;i++){
        dp[i][0] += dp[i-1][0];
        if(dp[i][0] < 1) dp[i][0] = 1;
    }
    
    for(int i = 1;i < m;i++){
        dp[0][i] += dp[0][i];
        if(dp[0][i] < 1) dp[0][i] = 1;
    }

    for(int i = 1;i < n;i++){
        for(int j = 1;j < m;j++){
            dp[i][j] = min(dp[i-1][j],dp[i][j-1]) + dp[i][j];
            if(dp[i][j] < 0) dp[i][j] = 1;
        }
    }

    cout << dp[n-1][m-1];

    return 0;
}