Submission #1314851

#TimeUsernameProblemLanguageResultExecution timeMemory
1314851exoworldgdHandcrafted Gift (IOI20_gift)C++20
100 / 100
580 ms38336 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,vector<int>a,vector<int>b,vector<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;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...