Submission #360014

#TimeUsernameProblemLanguageResultExecution timeMemory
360014PoimidorkaMaxcomp (info1cup18_maxcomp)C++14
0 / 100
1 ms492 KiB
#include <iostream> #include <vector> #include <set> #include <map> #include <unordered_map> #include <unordered_set> #include <deque> #include <queue> #include <string> #include <algorithm> #include <tuple> #include <cassert> using namespace std; #define x first #define y second #define int long long const int maxn = 1e3 + 10; int mat[maxn][maxn]; int opt[maxn][maxn]; vector<pair<int, int>> dir = {{0, -1}, {0, 1}, {1, 0}, {-1, 0}}; int n, m; bool check(int x, int y) { return x >= 0 && y >= 0 && x < n && y < m; } signed main() { #ifdef LC assert(freopen("input.txt", "r", stdin)); #endif ios::sync_with_stdio(0); cin.tie(0); cin >> n >> m; int ans = -1; bool f = 0; set<pair<pair<int, int>, pair<int, int>>> q; for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { cin >> mat[i][j]; if (mat[i][j] != mat[0][0]) f = 1; opt[i][j] = -1; q.insert({{-1, mat[i][j]}, {i, j}}); } } while (!q.empty()) { auto v = *q.rbegin(); q.erase(v); int x = v.y.x; int y = v.y.y; // cout << x << ' ' << y << ' ' << v.x.y << endl; for (auto el : dir) { int x2 = el.x + x; int y2 = el.y + y; if (!check(x2, y2) || mat[x2][y2] > mat[x][y]) continue; // cout << x2 << ' ' << y2 << endl; if (opt[x2][y2] < opt[x][y] + mat[x][y] - mat[x2][y2] - 1) { q.erase({{opt[x2][y2], mat[x2][y2]}, {x2, y2}}); opt[x2][y2] = max(opt[x2][y2], opt[x][y] + mat[x][y] - mat[x2][y2] - 1); q.insert({{opt[x2][y2], mat[x2][y2]}, {x2, y2}}); ans = max(ans, opt[x2][y2]); } } } // if (ans == -1 && f) // assert(0); cout << ans; return 0; }

Compilation message (stderr)

maxcomp.cpp: In function 'int main()':
maxcomp.cpp:44:7: warning: variable 'f' set but not used [-Wunused-but-set-variable]
   44 |  bool f = 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...