# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
429095 | charterla | Handcrafted Gift (IOI20_gift) | C++14 | 304 ms | 27748 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 "gift.h"
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
struct Range{
int ls,rs,self;
}one[500005],two[500005];
int cn[2]={0,0};
bool cmp(Range a,Range b){
return a.ls==b.ls?a.rs<b.rs:a.ls<b.ls;
}
bool tag[2000005];
bool check(int ls,int rs,int ld,int rd,int now){
//cout<<ls<<","<<rs<<":"<<ld<<","<<rd<<"-->"<<now<<endl;
if(ls<=ld && rd<=rs)return tag[now];
int mid=(ld+rd)/2;
if(mid>=ls && !check(ls,rs,ld,mid,now<<1))return false;
if(mid+1<=rs && !check(ls,rs,mid+1,rd,now<<1|1))return false;
return true;
}
int construct(int n, int r, vector<int> a, vector<int> b, vector<int> x) {
for(int i=0;i<r;i++){
if(x[i]==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... |