Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Ninstroyer

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

Language: cpp

Time: 0.075 second

Submitted On: 2026-01-03 16:19:08

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

const int nx = 1005, inf = 1e9;

int n,m,arr[nx][nx],dp[nx][nx];

int main()
{
    ios::sync_with_stdio(false); cin.tie(0);
    cin>>n>>m;
    for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin>>arr[i][j];
    for(int i = 0; i <= n+1; i++) for(int j = 0; j <= m+1; j++) dp[i][j] = inf;
    dp[n+1][m] = dp[n][m+1] = 1;
    for(int i = n; i > 0; i--)
    {
        for(int j = m; j > 0; j--)
        {
            int need = min(dp[i+1][j], dp[i][j+1]) - arr[i][j];
            if(need <= 0) need = 1;
            dp[i][j] = need;
        }
    }

    cout<<dp[1][1];
}