Submission #12686

# Submission time Handle Problem Language Result Execution time Memory
12686 2014-12-29T06:20:17 Z gs14004 Crayfish scrivener (IOI12_scrivener) C++
100 / 100
720 ms 87992 KB
char ops[1000005];
int prev[1000005][20], size[1000005], sz;
int go[1000005];

void Init(){
    
}

void TypeLetter(char L){
    int p = sz;
    go[p] = p;
    ops[p] = L;
    if(p) prev[p][0] = go[p-1];
    for (int i=1; prev[p][i-1]; i++) {
        prev[p][i] = prev[prev[p][i-1]][i-1];
    }
    size[p] = size[prev[p][0]]+1;
    sz++;
}

void UndoCommands(int U){
    go[sz] = go[sz-U-1];
    sz++;
}

char GetLetter(int P){
    int pos = go[sz-1];
    int obj = P+1;
    for (int i=19; i>=0; i--) {
        if(size[prev[pos][i]] >= obj){
            pos = prev[pos][i];
        }
    }
    return ops[pos];
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 87992 KB Output is correct
2 Correct 0 ms 87992 KB Output is correct
3 Correct 0 ms 87992 KB Output is correct
4 Correct 0 ms 87992 KB Output is correct
5 Correct 0 ms 87992 KB Output is correct
6 Correct 0 ms 87992 KB Output is correct
7 Correct 0 ms 87992 KB Output is correct
8 Correct 0 ms 87992 KB Output is correct
9 Correct 0 ms 87992 KB Output is correct
10 Correct 0 ms 87992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 87992 KB Output is correct
2 Correct 0 ms 87992 KB Output is correct
3 Correct 0 ms 87992 KB Output is correct
4 Correct 0 ms 87992 KB Output is correct
5 Correct 0 ms 87992 KB Output is correct
6 Correct 0 ms 87992 KB Output is correct
7 Correct 0 ms 87992 KB Output is correct
8 Correct 0 ms 87992 KB Output is correct
9 Correct 0 ms 87992 KB Output is correct
10 Correct 0 ms 87992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 87992 KB Output is correct
2 Correct 0 ms 87992 KB Output is correct
3 Correct 0 ms 87992 KB Output is correct
4 Correct 0 ms 87992 KB Output is correct
5 Correct 0 ms 87992 KB Output is correct
6 Correct 0 ms 87992 KB Output is correct
7 Correct 0 ms 87992 KB Output is correct
8 Correct 0 ms 87992 KB Output is correct
9 Correct 0 ms 87992 KB Output is correct
10 Correct 0 ms 87992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 400 ms 87992 KB Output is correct
2 Correct 416 ms 87992 KB Output is correct
3 Correct 328 ms 87992 KB Output is correct
4 Correct 336 ms 87992 KB Output is correct
5 Correct 448 ms 87992 KB Output is correct
6 Correct 360 ms 87992 KB Output is correct
7 Correct 460 ms 87992 KB Output is correct
8 Correct 396 ms 87992 KB Output is correct
9 Correct 460 ms 87992 KB Output is correct
10 Correct 196 ms 87992 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 528 ms 87992 KB Output is correct
2 Correct 616 ms 87992 KB Output is correct
3 Correct 340 ms 87992 KB Output is correct
4 Correct 416 ms 87992 KB Output is correct
5 Correct 424 ms 87992 KB Output is correct
6 Correct 384 ms 87992 KB Output is correct
7 Correct 428 ms 87992 KB Output is correct
8 Correct 580 ms 87992 KB Output is correct
9 Correct 720 ms 87992 KB Output is correct
10 Correct 204 ms 87992 KB Output is correct