Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: Ninstroyer

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

Language: cpp

Time: 0.058 second

Submitted On: 2026-03-13 15:15:01

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

const int nx = 1e3+5, inf = 1e9;

int n,m,mat[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>>mat[i][j];
    for(int i = 1; i <= n+1; i++) for(int j = 1; j <= m+1; j++) dp[i][j]=inf;
    dp[n+1][m]=dp[n][m+1]=1;
    for(int i = n; i >= 1; i--)
    {
        for(int j = m; j >= 1; j--)
        {
            int need = min(dp[i+1][j],dp[i][j+1])-mat[i][j];
            need = max(need,1);
            dp[i][j]=need;
        }
    }
    cout<<dp[1][1];
}