# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
1159624 | WongYiKai | Specijacija (COCI20_specijacija) | C++20 | 3502 ms | 117920 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
struct node {
int s, e;
ll mx;
node *l, *r;
node (int _s, int _e, ll A[] = NULL): s(_s), e(_e), mx(0), l(NULL), r(NULL) {
if (A == NULL) return;
if (s == e) mx = A[s];
else {
l = new node(s, (s+e)>>1, A), r = new node((s+e+2)>>1, e, A);
combine();
}
}
void combine() {
mx = max(l->mx, r->mx);
}
ll range_max(int x, int y) {
if (s == x && e == y) return mx;
if (l == NULL) return mx;
int m = (s+e)>>1;
if (y <= m) return l->range_max(x, y);
if (x > m) return r->range_max(x, y);
return max(l->range_max(x, m), r->range_max(m+1, y));
}
~node() {
if (l != NULL) delete l;
if (r != NULL) delete r;
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |