Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: SnowAveNode

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

Language: cpp

Time: 0.060 second

Submitted On: 2026-04-22 16:19:23

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

const int nx = 1e5 + 5, MOD = 1e9 + 7, inf = 2e9; const ll INF = 4e18;

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

    ll n,m; cin>>n>>m;
    vector<vector<ll>> grid(n+1, vector<ll>(m+1));
    vector<ll> dp(m+2,INF); dp[m]=1;

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

    for(int i=n;i>=1;i--)
        for(int j=m;j>=1;j--) {
            if(i==n&&j==m){dp[j]=max(1LL,1LL-grid[i][j]);continue;}
            ll res=min(dp[j],dp[j+1]);
            dp[j]=max(1LL,res-grid[i][j]);
        }

    cout<<dp[1]<<'\n';

    return 0;
}