#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll mod = 1e9 + 7;
ll inf = 2000000000;
int main() {
ll n, m;
cin >> n >> m;
vector<vector<ll>>matrica(n, vector<ll>(m));
vector<pair<ll, ll>>veci;
vector<pair<ll, ll>>manji;
ll maks = 0, mini = inf;
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++) {
cin >> matrica[i][j];
maks = max(maks, matrica[i][j]);
mini = min(mini, matrica[i][j]);
}
}
ll res = -1;
for (ll i = 0; i < n; i++) {
for (ll j = 0; j < m; j++) {
if (matrica[i][j] == mini) {
manji.push_back({i, j});
}
if (matrica[i][j] == maks) {
manji.push_back({i, j});
}
bool imaveci = false, imamanji = false;
if (i > 0) {
if (matrica[i - 1][j] >= matrica[i][j]) {
imaveci = true;
}
else if (matrica[i - 1][j] <= matrica[i][j]) {
imamanji = true;
}
}
if (i < (n - 1)) {
if (matrica[i + 1][j] >= matrica[i][j]) {
imaveci = true;
}
else if (matrica[i + 1][j] <= matrica[i][j]) {
imamanji = true;
}
}
if (j > 0) {
if (matrica[i][j - 1] >= matrica[i][j]) {
imaveci = true;
}
else if (matrica[i][j - 1] <= matrica[i][j]) {
imamanji = true;
}
}
if (j < (m - 1)) {
if (matrica[i][j + 1] >= matrica[i][j]) {
imaveci = true;
}
else if (matrica[i][j + 1] <= matrica[i][j]) {
imamanji = true;
}
}
if (!imaveci) {
veci.push_back({i, j});
}
if (!imamanji) {
manji.push_back({i, j});
}
}
}
for (ll i = 0; i < veci.size(); i++) {
for (ll j = 0; j < manji.size(); j++) {
ll x1 = veci[i].first, y1 = veci[i].second, x2 = manji[j].first, y2 = manji[j].second;
res = max(res, matrica[x1][y1] - matrica[x2][y2] - abs(x1 - x2) - abs(y1 - y2) - 1);
}
}
cout << res << endl;
}
| # | 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... |