# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
886172 | vjudge1 | Curtains (NOI23_curtains) | C++17 | 968 ms | 18084 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;
const int N = 2e6 + 7;
const int inf = 1e9 + 7;
struct SEGT{
pair < int , int > tree[N];
SEGT(){
for(int i = 0;i<N;i++){
tree[i] = {-inf , inf};
}
}
void update(int ind , int l , int r , int ql , int qr){
if(l >= ql and r <= qr){
tree[ind].first = max(tree[ind].first , ql);
tree[ind].second = min(tree[ind].second , qr);
return;
}
else if(l > qr or r < ql){
return;
}
else{
int mid = (l+r)/2;
update(ind*2,l,mid,ql,qr);
update(ind*2+1,mid+1,r,ql,qr);
tree[ind].first = max(tree[ind].first , min(tree[ind*2].first , tree[ind*2+1].first));
tree[ind].second = min(tree[ind].second , max(tree[ind*2].second , tree[ind*2+1].second));
}
}
bool query(int ind , int l , int r , int ql , int qr){
if(l >= ql and r <= qr){
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |