제출 #104412

#제출 시각아이디문제언어결과실행 시간메모리
104412wilwxk크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++11
34 / 100
1073 ms90476 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN=1e6+3; const int LOGN=22; int cont[MAXN]; char letra[MAXN]; int dp[LOGN+2][MAXN]; int contv=0; void update(int cur) { int aux=dp[0][cur]; for(int i=1; i<=LOGN; i++) { dp[i][cur]=dp[i-1][aux]; aux=dp[i][cur]; } } void Init() {} void TypeLetter(char cur) { contv++; int pai=contv-1; if(pai==0) pai=contv; letra[contv]=cur; cont[contv]=cont[pai]+1; dp[0][contv]=pai; update(contv); } void UndoCommands(int val) { contv++; int pai=contv-1-val; if(pai==0) pai=contv; cont[contv]=cont[pai]; dp[0][contv]=pai; update(contv); } char GetLetter(int ind) { int cur=contv; int aux=cur; for(int i=LOGN; i>=0; i--) { if(cont[dp[i][aux]]>ind) { aux=dp[i][aux]; } } return letra[aux]; }
#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...