Submission #1042562

#TimeUsernameProblemLanguageResultExecution timeMemory
1042562UnforgettableplTricolor Lights (JOI24_tricolor)C++17
0 / 100
44 ms1372 KiB
#include "Anna.h" #include <bits/stdc++.h> using namespace std; namespace { string calc(vector<int> arr,string S){ int N = arr.size()+1; string res(N,'$'); for(int i=0;i<N-1;i++){ if(arr[i])continue; vector<bool> present(3); if(S[i]=='R')present[0]=true; else if(S[i]=='G')present[1]=true; else if(S[i]=='B')present[2]=true; if(S[i+1]=='R')present[0]=true; else if(S[i+1]=='G')present[1]=true; else if(S[i+1]=='B')present[2]=true; if(!present[0])res[i]=res[i+1]='R'; else if(!present[1])res[i]=res[i+1]='G'; else if(!present[2])res[i]=res[i+1]='B'; for(int j=i-1;j>=0;j--){ if(arr[j]!=1)break; vector<bool> present(3); if(S[j]=='R')present[0]=true; else if(S[j]=='G')present[1]=true; else if(S[j]=='B')present[2]=true; if(res[j+1]=='R')present[0]=true; else if(res[j+1]=='G')present[1]=true; else if(res[j+1]=='B')present[2]=true; if(!present[0])res[j]='R'; else if(!present[1])res[j]='G'; else if(!present[2])res[j]='B'; } for(int j=i+1;j<N;j++){ if(arr[j-1]!=1)break; vector<bool> present(3); if(S[j]=='R')present[0]=true; else if(S[j]=='G')present[1]=true; else if(S[j]=='B')present[2]=true; if(res[j-1]=='R')present[0]=true; else if(res[j-1]=='G')present[1]=true; else if(res[j-1]=='B')present[2]=true; if(!present[0])res[j]='R'; else if(!present[1])res[j]='G'; else if(!present[2])res[j]='B'; } } for(int i=0;i<N;i++)assert(res[i]!='$'); return res; } } pair<string, int> anna(int N, string S) { if(N<=130){ string res; for(int i=0;i<N;i++){ if(S[i]=='R')res.insert(res.end(),'B'); else if(S[i]=='B')res.insert(res.end(),'G'); else if(S[i]=='G')res.insert(res.end(),'R'); } return {res,N}; } vector<int> res(N-1,1); res[125]=0; return {calc(res,S),130}; }
#include "Bruno.h" #include <bits/stdc++.h> using namespace std; namespace { int N; int l; } // namespace void init(int N, int l) { ::N = N; ::l = l; } int bruno(string u) { if(N<=130)return 1; int idxatsame = -1; for(int i=1;i<l;i++)if(u[i]==u[i-1])idxatsame=i-1; assert(idxatsame!=-1); return 126-idxatsame; }
#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...