Submission #1159795

#TimeUsernameProblemLanguageResultExecution timeMemory
1159795gohchingjayk3D Histogram (COCI20_histogram)C++20
20 / 110
2594 ms3396 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; #define int ll constexpr int INF = 1ull << 60; int widths[200000 + 5], heights[200000 + 5]; /* struct Node { Node *left = nullptr, *right = nullptr; int l, r, m; int width, height; Node(int a, int b) { l = a, r = b, m = (l + r) >> 1; if (l == r) { width = widths[l]; height = heights[l]; } else { left = new Node(l, m); right = new Node(m + 1, r); width = min(left->width, right->width); height = min(left->height, right->height); } } pair<int, int> rmq(int a, int b) { if (a <= l && r <= b) return pair{width, height}; if (r < a || b < l) return {INF, INF}; auto [lw, lh] = left->rmq(a, b); auto [rw, rh] = right->rmq(a, b); return pair{min(lw, rw), min(lh, rh)}; } }; Node *segtree; */ int N; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr); cin >> N; for (int i = 0; i < N; ++i) cin >> widths[i] >> heights[i]; // segtree = new Node(0, N - 1); int ans = -1; for (int i = 0; i < N; ++i) { int width = INF, height = INF; for (int j = i; j < N; ++j) { width = min(width, widths[j]); height = min(height, heights[j]); ans = max(ans, width * height * (j - i + 1)); } } cout << ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...