#include <bits/stdc++.h>
using namespace std;
int n, m, v[1005][1005], dp[1005][1005][4];
signed main ()
{
cin >> n >> m;;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= m; j++)
cin >> v[i][j];
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
dp[i][j][0] = max(max(dp[i - 1][j][0], dp[i][j - 1][0]), v[i][j]) - 1;
for (int j = m; j >= 1; j--)
dp[i][j][1] = max(max(dp[i - 1][j][1], dp[i][j + 1][1]), v[i][j]) - 1;
}
for (int i = n; i >= 1; i--)
{
for (int j = 1; j <= m; j++)
dp[i][j][2] = max(max(dp[i + 1][j][2], dp[i][j - 1][2]), v[i][j]) - 1;
for (int j = m; j >= 1; j--)
dp[i][j][3] = max(max(dp[i + 1][j][3], dp[i][j + 1][3]), v[i][j]) - 1;
}
int rez = 0;
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m; j++)
{
for (int k = 1; k < 4; k++)
rez = max(rez, dp[i][j][k] - v[i][j]);
}
}
cout << rez;
return 0;
}
| # | 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... |