Submission #911761

#TimeUsernameProblemLanguageResultExecution timeMemory
911761Faisal_SaqibCrayfish scrivener (IOI12_scrivener)C++17
100 / 100
568 ms203100 KiB
#include <iostream> using namespace std; const int MAXT=3e6+1; const int LG=50; int tm=1; int par[MAXT][LG]; int len[MAXT]; 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) { P++; int 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...