Submission #20809

#TimeUsernameProblemLanguageResultExecution timeMemory
20809jjwdi0Crayfish scrivener (IOI12_scrivener)C++11
34 / 100
1000 ms92256 KiB
int par[1<<20][21], size[1<<20], kth, Q; char a[1<<20]; void Init(){} void TypeLetter(char x) { if(kth) par[kth][0] = kth - 1; for(int i = 1; par[kth][i-1]; i++) { par[kth][i] = par[par[kth][i-1]][i-1]; } a[kth] = x, size[kth] = size[par[kth][0]] + 1, kth++; } void UndoCommands(int x) { par[kth][0] = kth - x - 1; for(int i = 1; par[kth][i-1]; i++) { par[kth][i] = par[par[kth][i-1]][i-1]; } a[kth] = a[par[kth][0]], size[kth] = size[par[kth][0]], kth++; } char GetLetter(int x) { int u = kth - 1; for(int i = 19; i + 1; i--) { if(size[par[u][i]] > x) u = par[u][i]; } return a[u]; }
#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...