Submission #911860

#TimeUsernameProblemLanguageResultExecution timeMemory
911860Faisal_SaqibCrayfish scrivener (IOI12_scrivener)C++17
100 / 100
439 ms112464 KiB
#include <iostream> using namespace std; const int MAXT=2e6+1; const int LG=27; int tm=1,par[MAXT][LG],len[MAXT],ct; char cp[MAXT]; void Init() { } void TypeLetter(char L) { cp[tm]=L; len[tm]=len[tm-1]+1; par[tm][0]=tm-1; for(int j=1;j<LG;j++) par[tm][j]=par[par[tm][j-1]][j-1]; tm++; } void UndoCommands(int U) { len[tm]=len[tm-U-1]; par[tm][0]=tm-U-1; for(int j=0;(j+1)<LG;j++) par[tm][j+1]=par[tm-U-1][j]; tm++; } char GetLetter(int P) { ct=tm-1; for(int j=LG-1;j>=0;j--) if(len[par[ct][j]]>P) ct=par[ct][j]; return cp[ct]; }
#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...