Submission #12675

#TimeUsernameProblemLanguageResultExecution timeMemory
12675gs14004Crayfish scrivener (IOI12_scrivener)C++98
5 / 100
1000 ms12796 KiB
int ops[1000005], prev[1000005], size[1000005], sz;

void Init(){
    
}

void TypeLetter(char L){
    ops[sz] = L;
    size[sz] = size[prev[sz]]+1;
    sz++;
    prev[sz] = sz-1;
}

void UndoCommands(int U){
    prev[sz] = sz-U-1;
    size[sz] = size[prev[sz]];
    sz++;
    prev[sz] = sz-1;
}
char GetLetter(int P){
    int i = prev[sz];
    int piv = size[i] - P - 1;
    while (piv) {
        i = prev[i];
        if(ops[i]) piv--;
    }
    while (!ops[i]) i = prev[i];
    return ops[i];
}
#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...