제출 #115584

#제출 시각아이디문제언어결과실행 시간메모리
115584faustaadp크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++17
34 / 100
1086 ms81912 KiB
#include<bits/stdc++.h> typedef long long ll; #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; char last; pair<int,int> A[1010101]; int te,X; int p[22][1000001]; int LO[1000005],ii; void Init() { for(ii=1;ii<=1000002;ii++) LO[ii]=ceil(log(ii)/log(2)); } void TypeLetter(char L) { if(te==0) A[te]=mp(L,0); else A[te]=mp(L,A[te-1].se+1); if(te==0) p[0][te]=0; else p[0][te]=te-1; for(ii=1;ii<LO[te+1];ii++) p[ii][te]=p[ii-1][p[ii-1][te]]; te++; } void UndoCommands(int U) { A[te]=A[te-U-1]; p[0][te]=p[0][te-U-1]; for(ii=1;ii<LO[te+1];ii++) p[ii][te]=p[ii-1][p[ii-1][te]]; te++; // cek(); } char GetLetter(int P) { X=te-1; for(ii=LO[te+1]-1;ii>=0;ii--) if(A[p[ii][X]].se>=P) X=p[ii][X]; return char(A[X].fi); // return hai[P]; }
#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...