Submission #1320037

#TimeUsernameProblemLanguageResultExecution timeMemory
1320037brianabcrMaxcomp (info1cup18_maxcomp)C++20
15 / 100
1 ms332 KiB
#include <bits/stdc++.h>
#define int long long

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 = LLONG_MIN;
    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 timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...