Submission

Status:

[PPPPPPPPPPPPPPP]

Subtask/Task Score:

{100/100}

Score: 100

User: exoworldgd

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

Language: cpp

Time: 0.060 second

Submitted On: 2026-03-27 15:48:26

#pragma GCC optimize("Ofast,unroll-loops,inline,fast-math,omit-frame-pointer")
#pragma GCC target("avx2,bmi,bmi2,popcnt,lzcnt,tune=native,fma")
#include<bits/stdc++.h>
#define int long long
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
int n,m,a[1005][1005],dp[1005][1005];
signed main(void){
    exoworldgd;
    cin>>n>>m;
    for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>a[i][j],dp[i][j]=1e18;
    dp[n][m]=max(1ll,1-a[n][m]);
	for(int j=m-1;j;j--)dp[n][j]=max(1ll,dp[n][j+1]-a[n][j]);
	for(int i=n-1;i;i--)dp[i][m]=max(1ll,dp[i+1][m]-a[i][m]);
	for(int i=n-1;i;i--)for(int j=m-1;j;j--)dp[i][j]=max(1ll,min(dp[i+1][j],dp[i][j+1])-a[i][j]);
	cout<<dp[1][1];
}