#include "gift.h"
#include<bits/stdc++.h>
using namespace std;
#define pii pair<int,int>
#define f first
#define se second
set<pii> s;
//int change[555555];
int construct(int n, int r, std::vector<int> a, std::vector<int> b, std::vector<int> x) {
for(int i=0;i<r;i++)
{
if(x[i]==1)
{
int newl=a[i],newr=b[i];
auto it=s.lower_bound({a[i],a[i]});
auto er=it;
if(it!=s.begin())
{
it--;
if((*it).se>=a[i]) newl=(*it).f;
er=it;
it++;
s.erase(er);
}
while(it!=s.end()&&(*it).f<=b[i])
{
if((*it).se>b[i]) {
newr=(*it).se;
}
er=it;
it++;
s.erase(er);
}
s.insert({newl,newr});
}
}
for(int i=0;i<r;i++)
{
if(x[i]==2)
{
if(b[i]-a[i]==0)
return 0;
auto it=s.upper_bound({a[i]+1,n});
//cout<<a[i]<<' '<<b[i]<<' '<<(*it).f<<' '<<(*it).se<<'\n';
if(it!=s.begin())
{
it--;
if(a[i]>=(*it).f&&b[i]<=(*it).se)
return 0;
}
}
}
string ans(n,'R');
char color[]={'R','B'};
int now=0,l=0;
for(auto it=s.begin();it!=s.end();it++)
{
cout<<(*it).f<<' '<<(*it).se<<'\n';
for(int i=l;i<(*it).f;i++){
now=(now+1)%2;
ans[i]=color[now];
}
now=(now+1)%2;
for(int i=(*it).f;i<=(*it).se;i++)
{
ans[i]=color[now];
}
l=(*it).se+1;
}
for(int i=l;i<n;i++){
now=(now+1)%2;
ans[i]=color[now];
}
craft(ans);
return 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... |