| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1314847 | exoworldgd | Handcrafted Gift (IOI20_gift) | C++20 | 0 ms | 0 KiB |
#include<bits/stdc++.h>
#include"gift.h"
#define exoworldgd cin.tie(0)->sync_with_stdio(0),cout.tie(0)
using namespace std;
int construct(int n,int r,int[] a,int[] b,int[] x){
string s(n,'R');
int v[n]={};
set<int>st;
for(int i=0;i<n;i++)st.insert(i);
for(int i=0;i<r;i++){
if(x[i]==1){
auto it=st.lower_bound(a[i]);
if(it==st.end()||*it>a[i])it--;
st.erase(next(it),st.upper_bound(b[i]));
}
}
for(int i=0;i<r;i++){
if(x[i]==2){
auto it=st.lower_bound(a[i]),it2=st.lower_bound(b[i]);
if(it==st.end()||*it>a[i])it--;
if(it2==st.end()||*it2>b[i])it2--;
if(it==it2)return 0;
}
}
for(int i:st)v[i]^=1;
for(int i=0,j=0;i<n;i++)j^=v[i],s[i]=j?'R','B';
craft(s);return 1;
}
