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];
}