# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
48281 | choikiwon | 허수아비 (JOI14_scarecrows) | C++17 | 614 ms | 65512 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> pii;
const int MN = 200010;
int N;
pii P[MN];
vector<pii> ord;
struct BIT {
vector<vector<pii> > tree;
void init() {
tree = vector<vector<pii> >(4 * N);
}
void upd(int idx, pii v, int l, int r, int n) {
if(idx < l || r < idx) return;
while(tree[n].size() && tree[n].back().second >= v.second) tree[n].pop_back();
tree[n].push_back(v);
if(l == r) return;
int m = (l + r)>>1;
upd(idx, v, l, m, 2*n);
upd(idx, v, m + 1, r, 2*n + 1);
}
int quer(int a, int b, int &x, int l, int r, int n) {
if(b < l || r < a) return 0;
if(a <= l && r <= b) {
int s = 0, e = (int)tree[n].size() - 1, p = tree[n].size();
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |