Submission #61814

#TimeUsernameProblemLanguageResultExecution timeMemory
61814theknife2001Crayfish scrivener (IOI12_scrivener)C++17
0 / 100
198 ms4004 KiB
#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(i<0)
                    while(1)
                    cout<<"FUCK"<<endl;
                else
                    assert(0);
            }
            i--;
        }
        reverse(s,s+j);
    }
    q=1;
    return s[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...