#include <iostream>
using namespace std;
const int N = 1005;
int Mx[N][N][4], a[N][N];
int main(){
int n, m, Ans = -5;
cin>>n>>m;
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++)
cin>>a[i][j];
}
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++)
Mx[i][j][0] = max(a[i][j], max(Mx[i][j-1][0], Mx[i-1][j][0])) - 1;
for (int j=m;j>=1;j--)
Mx[i][j][1] = max(a[i][j], max(Mx[i][j+1][1], Mx[i-1][j][1])) - 1;
}
for (int i=n;i>=1;i--){
for (int j=1;j<=m;j++)
Mx[i][j][2] = max(a[i][j], max(Mx[i][j-1][2], Mx[i+1][j][2])) - 1;
for (int j=m;j>=1;j--)
Mx[i][j][3] = max(a[i][j], max(Mx[i][j+1][3], Mx[i+1][j][3])) - 1;
}
for (int i=1;i<=n;i++){
for (int j=1;j<=m;j++)
for (int k : {0, 1, 2, 3})
Ans = max(Ans, Mx[i][j][k] - a[i][j]);
}
cout<<Ans<<'\n';
}
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |
| # | Verdict | Execution time | Memory | Grader output |
|---|
| Fetching results... |