Submission #124837

#TimeUsernameProblemLanguageResultExecution timeMemory
124837nxteruCrayfish scrivener (IOI12_scrivener)C++14
100 / 100
457 ms63404 KiB
#include <bits/stdc++.h> using namespace std; int le[1000005],n,k,par[20][1000005],dp[1000005]; char re[1000005]; void Init(void){}; void TypeLetter(char c){ int v=le[n]; k++; re[k]=c; par[0][k]=v; dp[k]=dp[v]+1; for(int i=0;i<19;i++)par[i+1][k]=par[i][par[i][k]]; n++; le[n]=k; } void UndoCommands(int x){ le[n+1]=le[n-x]; n++; } char GetLetter(int x){ x++; int v=le[n]; for(int i=0;i<20;i++)if((dp[v]-x)>>i&1)v=par[i][v]; return re[v]; }
#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...