제출 #114813

#제출 시각아이디문제언어결과실행 시간메모리
114813Shafin666크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++14
34 / 100
50 ms10104 KiB
#include <bits/stdc++.h> const int maxn = 1e5+10; int state[maxn], parent[maxn][25]; int depth[maxn]; char letter[maxn]; int stat = 0, command = 0; void Init() {} void TypeLetter(char L) { stat++, command++; state[command] = stat; letter[stat] = L; int par = state[command - 1]; depth[stat] = depth[par] + 1; parent[stat][0] = par; letter[stat] = L; for(int i = 1; i <= 20; i++) parent[stat][i] = parent[parent[stat][i-1]][i-1]; } void UndoCommands(int U) { command++; state[command] = state[command - U - 1]; } char GetLetter(int P) { int cur = state[command]; P = depth[cur] - P - 1; for(int i = 0; i <= 20; i++) if(P & (1 << i)) cur = parent[cur][i]; return letter[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...