Submission #393246

#TimeUsernameProblemLanguageResultExecution timeMemory
393246HazemCrayfish scrivener (IOI12_scrivener)C++14
60 / 100
1092 ms86460 KiB
#include <bits/stdc++.h> //#include "grader.h" using namespace std; #define S second #define F first #define LL long long const int N = 1e6+10; const LL MOD = 1e9+7; const LL LINF = 1e18; const LL INF = 1e9; char s[N]; int par[N][21],len[N]; int cnt = 1; char last; void Init() {} void buildst(int x,int pr){ par[x][0] = pr; len[x] = len[pr]; int cur = pr; for(int i=1;i<=20;i++) par[x][i] = par[cur][i-1],cur = par[cur][i-1]; } void TypeLetter(char L) { buildst(cnt,cnt-1); len[cnt]++; s[cnt] = L; cnt++; } void UndoCommands(int U) { buildst(cnt,cnt-U-1); cnt++; } char GetLetter(int P) { cnt--; P++; int cur = cnt; for(int i=20;i>=0;i--) if(len[par[cur][i]]>=P)cur = par[cur][i]; cnt++; return s[cur]; }
#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...