# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
62504 | 2018-07-28T20:03:49 Z | zetapi | 크레이피쉬 글쓰는 기계 (IOI12_scrivener) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; #define pb push_back #define mp make_pair #define int long long #define itr ::iterator typedef pair<int,int> pii; const int MAX=1e5; char last; char X[MAX]; int ind,size[MAX],par[MAX]; void Init() { } void TypeLetter(char L) { ++ind; X[ind]=L; par[ind]=ind-1; size[ind]=size[par[ind]]+1; return ; } void UndoCommands(int U) { ++ind; par[ind]=ind-U-1; size[ind]=size[par[ind]]; return ; } char GetLetter(int P) { P++; int cur=ind; while(cur) { if(size[cur]==P and X[cur]>='a' and X[cur]<='z') return X[cur]; cur=par[cur]; } } /*signed main() { ios_base::sync_with_stdio(false); TypeLetter('a'); TypeLetter('b'); TypeLetter('d'); UndoCommands(2); UndoCommands(1); cout<<GetLetter(2); //cout<<ind<<" "<<par[ind]<<"\n"; return 0; }*/