Submission #1235571

#TimeUsernameProblemLanguageResultExecution timeMemory
1235571AishaMaxcomp (info1cup18_maxcomp)C++20
0 / 100
1 ms584 KiB
#include "bits/stdc++.h" using namespace std; #define int long long signed main() { int n, m; cin >> n >> m; vector <vector <int>> a(n + 1, vector <int> (m + 1)); for (int i = 1; i <= n; i ++) for (int j = 1; j <= m; j ++) cin >> a[i][j]; int ans = -1; vector <vector <vector <int>>> dp(n + 1, vector <vector <int>> (m + 1, vector <int> (4))); for (int i = 1; i <= n; i ++) { for (int j = 1; j <= m; j ++) { dp[i][j] = {a[i][j], a[i][j], 1, -1}; int x = max(a[i][j], dp[i][j - 1][0]) - min(a[i][j], dp[i][j - 1][1]) - dp[i][j - 1][2] - 1; int y = max(a[i][j], dp[i - 1][j][0]) - min(a[i][j], dp[i - 1][j][1]) - dp[i - 1][j][2] - 1; if (j == 1) x = -1; if (i == 1) y = -1; if (dp[i][j][3] < x) dp[i][j] = {max(a[i][j], dp[i][j - 1][0]), min(a[i][j], dp[i][j - 1][1]), dp[i][j - 1][2] + 1, x}; if (dp[i][j][3] < y) dp[i][j] = {max(a[i][j], dp[i - 1][j][0]), min(a[i][j], dp[i - 1][j][1]), dp[i - 1][j][2] + 1, y}; ans = max(ans, dp[i][j][3]); } } cout << ans << endl; 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...