Submission #1286557

#TimeUsernameProblemLanguageResultExecution timeMemory
1286557mihajlo0404Maxcomp (info1cup18_maxcomp)C++20
15 / 100
2 ms576 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll mod = 1e9 + 7; ll inf = 2000000000; ll solve(vector<vector<ll>> & matrica, vector<vector<ll>> dpmini, vector<vector<ll>> dpmaxi, ll n) { ll m = matrica[0].size(); for (ll i = 1; i < n; i++) { dpmaxi[i][0] = max(dpmaxi[i][0], dpmaxi[i - 1][0] + matrica[i - 1][0] - matrica[i][0] - 1); dpmini[i][0] = max(dpmini[i][0], dpmini[i - 1][0] - matrica[i - 1][0] + matrica[i][0] - 1); } for (ll i = 1; i < m; i++) { for (ll j = 0; j < n; j++) { if (j != 0) { dpmaxi[j][i] = max(dpmaxi[j][i], dpmaxi[j - 1][i] + matrica[j - 1][i] - matrica[j][i] - 1); dpmini[j][i] = max(dpmini[j][i], dpmini[j - 1][i] - matrica[j - 1][i] + matrica[j][i] - 1); } dpmaxi[j][i] = max(dpmaxi[j][i], dpmaxi[j][i - 1] + matrica[j][i - 1] - matrica[j][i] - 1); dpmini[j][i] = max(dpmini[j][i], dpmini[j][i - 1] - matrica[j][i - 1] + matrica[j][i] - 1); } } ll res = -1; for (ll i = 0; i < n; i++) { for (ll j = 0; j < m; j++) { res = max(res, dpmaxi[i][j]); res = max(res, dpmini[i][j]); } } return res; } int main() { ll n, m; cin >> n >> m; vector<vector<ll>>matrica(n, vector<ll>(m)); for (ll i = 0; i < n; i++) { for (ll j = 0; j < m; j++) { cin >> matrica[i][j]; } } vector<vector<ll>>dpmini(n, vector<ll>(m, -1)); vector<vector<ll>>dpmaxi(n, vector<ll>(m, -1)); ll maks1 = solve(matrica, dpmini, dpmaxi, n); for (ll i = 0; i < n; i++) { for (ll j = 0; j < m; j++) { swap(matrica[n - i - 1][j], matrica[i][j]); } } ll maks2 = solve(matrica, dpmini, dpmaxi, n); cout << max(maks1, maks2) << 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...