제출 #1210100

#제출 시각아이디문제언어결과실행 시간메모리
1210100HanksburgerMaxcomp (info1cup18_maxcomp)C++20
100 / 100
79 ms39752 KiB
#include <bits/stdc++.h> #define int long long using namespace std; int a[1005][1005], b[1005][1005], c[1005][1005], d[1005][1005], e[1005][1005]; signed main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, m, ans=-1e18; cin >> n >> m; for (int i=1; i<=n; i++) for (int j=1; j<=m; j++) cin >> a[i][j]; for (int i=0; i<=n+1; i++) { for (int j=0; j<=m+1; j++) { b[i][j]=1e18; c[i][j]=-1e18; d[i][j]=1e18; e[i][j]=-1e18; } } for (int i=1; i<=n; i++) for (int j=1; j<=m; j++) b[i][j]=min(min(b[i-1][j], b[i][j-1]), a[i][j]-i-j); for (int i=1; i<=n; i++) for (int j=1; j<=m; j++) c[i][j]=max(max(c[i-1][j], c[i][j-1]), a[i][j]+i+j); for (int i=1; i<=n; i++) for (int j=m; j>=1; j--) d[i][j]=min(min(d[i-1][j], d[i][j+1]), a[i][j]-i+j); for (int i=1; i<=n; i++) for (int j=m; j>=1; j--) e[i][j]=max(max(e[i-1][j], e[i][j+1]), a[i][j]+i-j); for (int i=1; i<=n; i++) { for (int j=1; j<=m; j++) { ans=max(ans, a[i][j]-i-j-b[i][j]-1); ans=max(ans, -a[i][j]-i-j+c[i][j]-1); ans=max(ans, a[i][j]-i+j-d[i][j]-1); ans=max(ans, -a[i][j]-i+j+e[i][j]-1); } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...