제출 #68469

#제출 시각아이디문제언어결과실행 시간메모리
68469nvmdava크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++17
34 / 100
1070 ms21744 KiB
#include <bits/stdc++.h> using namespace std; char s[1000001]; int now = 0, i = 1, dir[1000001][21], sz[1000001]; void Init() {} int find(int i, int x){ if(sz[i] == x){ return i; } int j = 0; while(sz[i] - (1 << j) >= x)j++; j--; return find(dir[i][j], x); } void TypeLetter(char L) { s[i] = L; dir[i][0] = now; sz[i] = sz[now] + 1; for(int j = 0; j < 21; j++){ if(sz[i] <= (1 << j)) break; dir[i][j] = find(now, sz[i] - (1 << j)); } now = i; i++; } void UndoCommands(int U) { now = i - U - 1; s[i] = s[now]; for(int j = 0; j <= 20; j++)dir[i][j] = dir[now][j]; sz[i] = sz[now]; i++; } char GetLetter(int P) { return s[find(i - 1, P + 1)]; }
#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...