# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
749210 | Lucpp | Passport (JOI23_passport) | C++17 | 1000 ms | 78836 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;
constexpr int inf = 1e8;
typedef pair<int, int> pi;
struct Seg{
vector<pi> seg;
int cap;
Seg(vector<int> v){
int n = (int)v.size();
for(cap=1; cap<n; cap*=2);
seg.assign(2*cap, {inf, inf});
for(int i = 0; i < n; i++) seg[i+cap] = {v[i], i};
for(int i = cap-1; i >= 1; i--) seg[i] = min(seg[2*i], seg[2*i+1]);
}
void upd(int i, int v){
i += cap;
seg[i].first = v;
while(i > 1){
i /= 2;
seg[i] = min(seg[2*i], seg[2*i+1]);
}
}
pi qry(int l, int r, int a, int b, int i){
if(l <= a && b <= r) return seg[i];
if(b < l || r < a) return {inf, inf};
int m = (a+b)/2;
return min(qry(l, r, a, m, 2*i), qry(l, r, m+1, b, 2*i+1));
}
pi qry(int l, int r){return qry(l+1, r+1, 1, cap, 1);}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |