제출 #1318964

#제출 시각아이디문제언어결과실행 시간메모리
1318964Muhammad_AneeqMaxcomp (info1cup18_maxcomp)C++20
15 / 100
0 ms332 KiB
#include <bits/stdc++.h> using namespace std; int const N=1e3+10; int mn[N][N][4]={};// 0 (0,0) 1(0,m-1) 2(n-1,0) 3(n-1,m-1) inline void solve() { int n,m; cin>>n>>m; int a[n][m]; for (int i=0;i<n;i++) for (int j=0;j<m;j++) cin>>a[i][j]; {// 0 for (int i=0;i<n;i++) { for (int j=0;j<m;j++) { mn[i][j][0]=a[i][j]-i-j; if (i-1>=0) mn[i][j][0]=min(mn[i][j][0],mn[i-1][j][0]); if (j-1>=0) mn[i][j][0]=min(mn[i][j][0],mn[i][j-1][0]); } } } {// 1 for (int i=0;i<n;i++) { for (int j=m-1;j>=0;j--) { mn[i][j][1]=a[i][j]-i+j; if (i-1>=0) mn[i][j][1]=min(mn[i][j][1],mn[i-1][j][1]); if (j+1<m) mn[i][j][1]=min(mn[i][j][1],mn[i][j+1][1]); } } } {// 2 for (int i=n-1;i>=0;i--) { for (int j=0;j<m;j++) { mn[i][j][2]=a[i][j]+i-j; if (i+1<n) mn[i][j][2]=min(mn[i][j][2],mn[i+1][j][2]); if (j-1>=0) mn[i][j][2]=min(mn[i][j][2],mn[i][j-1][2]); } } } {// 3 for (int i=n-1;i>=0;i--) { for (int j=m-1;j>=0;j--) { mn[i][j][3]=a[i][j]+i+j; if (i+1<n) mn[i][j][3]=min(mn[i][j][3],mn[i+1][j][3]); if (j+1<m) mn[i][j][3]=min(mn[i][j][3],mn[i][j+1][3]); } } } int ans=0; for (int i=0;i<n;i++) { for (int j=0;j<m;j++) { {//0 ans=max(ans,a[i][j]-i-j-mn[i][j][0]); } {//1 ans=max(ans,a[i][j]-i+j-mn[i][j][1]); } {//2 ans=max(ans,a[i][j]+i-j-mn[i][j][2]); } {//3 ans=max(ans,a[i][j]+i+j-mn[i][j][3]); } } } cout<<max(0,ans-1)<<endl; } int main() { ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); int t=1; for (int i=1;i<=t;i++) { solve(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...