# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
61815 | 2018-07-26T18:25:25 Z | theknife2001 | Crayfish scrivener (IOI12_scrivener) | C++17 | 0 ms | 0 KB |
#include <bits/stdc++.h> #define ii pair < char , char > #define fi first #define se second using namespace std; const int N=1e6+5; ii a[N]; char s[N]; bool q=0; int i=0; void Init() {} void TypeLetter(char L) { a[i]={'T',L}; i++; } void UndoCommands(int U) { a[i]={'U','0'+U}; i++; } int j=0; char GetLetter(int P) { if(!q) { j=0; i--; while(i>=0) { if(a[i].fi=='T') { s[j]=a[i].se; j++; } else if(a[i].fi=='U') { i-=(a[i].se-'0'); } else { if(a[i].fi=='') while(1) cout<<"FUCK"<<endl; else assert(0); } i--; } reverse(s,s+j); } q=1; return s[P]; }