Submission #1172806

#TimeUsernameProblemLanguageResultExecution timeMemory
1172806adkjtHandcrafted Gift (IOI20_gift)C++20
15 / 100
72 ms13128 KiB
#include "gift.h" #include<bits/stdc++.h> using namespace std; #define pii pair<int,int> #define f first #define se second set<pii> s; /*10 3 2 4 1 6 8 1 4 6 1 */ //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.upper_bound({a[i]+1,a[i]}); auto er=it; //cout<<(*s.begin()).f<<'\n'; if(it!=s.begin()) { it--; if((*it).se>=a[i]) { //cout<<"W"; newl=(*it).f; er=it; it++; s.erase(er); } else it++; } //cout<<(*it).f<<' '<<(*it).se<<' '; while(it!=s.end()&&(*it).f<=b[i]) { if((*it).se>b[i]) { newr=(*it).se; } er=it; it++; s.erase(er); } //cout<<newl<<' '<<newr<<'\n'; 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 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...