Submission #1286354

#TimeUsernameProblemLanguageResultExecution timeMemory
1286354mihajlo0404Maxcomp (info1cup18_maxcomp)C++20
60 / 100
1095 ms14648 KiB
#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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...