제출 #120473

#제출 시각아이디문제언어결과실행 시간메모리
120473KieranHorgan크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++17
5 / 100
230 ms63436 KiB
#include <bits/stdc++.h> using namespace std; char charOfStep[1000005]; int depth[1000005]; int kthAncestor[1000005][21]; int curStep = 0; void Init() {} void TypeLetter(char L) { curStep++; charOfStep[curStep] = L; depth[curStep] = depth[curStep-1]+1; kthAncestor[curStep][0] = curStep-1; for(int i = 1; 1<<i <= depth[curStep]; i++) kthAncestor[curStep][i] = kthAncestor[kthAncestor[curStep][i-1]][i-1]; } void UndoCommands(int U) { curStep++; charOfStep[curStep] = charOfStep[curStep-1-U]; depth[curStep] = depth[curStep-1-U]; copy(kthAncestor[curStep], kthAncestor[curStep]+21, kthAncestor[curStep-1-U]); } char GetLetter(int P) { int node = curStep; for(int i = 21; i >= 0; i--) if(depth[node] - (1<<i) >= P+1) node = kthAncestor[node][i]; return charOfStep[node]; }
#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...