Submission #25864

# Submission time Handle Problem Language Result Execution time Memory
25864 2017-06-24T15:38:55 Z akynoi Crayfish scrivener (IOI12_scrivener) C++14
100 / 100
746 ms 88032 KB
int depth[1000003];
char ch[1000003];
int pa[1000003][20];
int id[1000003];
int T, top;

void Init() { ch[T = 0] = '^'; depth[0] = -1; top = 1; }

void TypeLetter(char p) {
    depth[top] = depth[pa[top][0] = id[T++]] + 1;
    for (int i = 1; ch[pa[top][i - 1]] != '^'; i++) pa[top][i] = pa[pa[top][i - 1]][i - 1];
    ch[id[T] = top++] = p;
}

void UndoCommands(int m) { id[T + 1] = id[T - m]; T++; }

char GetLetter(int m) {
    int now = id[T], a = depth[id[T]] - m;
    for (int i = 0, p = 1; a; i++, p <<= 1)
        if (p & a) now = pa[now][i], a ^= p;
    return ch[now];
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 88032 KB Output is correct
2 Correct 0 ms 88032 KB Output is correct
3 Correct 0 ms 88032 KB Output is correct
4 Correct 0 ms 88032 KB Output is correct
5 Correct 0 ms 88032 KB Output is correct
6 Correct 0 ms 88032 KB Output is correct
7 Correct 0 ms 88032 KB Output is correct
8 Correct 0 ms 88032 KB Output is correct
9 Correct 0 ms 88032 KB Output is correct
10 Correct 0 ms 88032 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 88032 KB Output is correct
2 Correct 0 ms 88032 KB Output is correct
3 Correct 0 ms 88032 KB Output is correct
4 Correct 0 ms 88032 KB Output is correct
5 Correct 0 ms 88032 KB Output is correct
6 Correct 0 ms 88032 KB Output is correct
7 Correct 0 ms 88032 KB Output is correct
8 Correct 0 ms 88032 KB Output is correct
9 Correct 0 ms 88032 KB Output is correct
10 Correct 0 ms 88032 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 88032 KB Output is correct
2 Correct 0 ms 88032 KB Output is correct
3 Correct 0 ms 88032 KB Output is correct
4 Correct 0 ms 88032 KB Output is correct
5 Correct 0 ms 88032 KB Output is correct
6 Correct 0 ms 88032 KB Output is correct
7 Correct 0 ms 88032 KB Output is correct
8 Correct 0 ms 88032 KB Output is correct
9 Correct 0 ms 88032 KB Output is correct
10 Correct 0 ms 88032 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 559 ms 88032 KB Output is correct
2 Correct 559 ms 88032 KB Output is correct
3 Correct 439 ms 88032 KB Output is correct
4 Correct 429 ms 88032 KB Output is correct
5 Correct 523 ms 88032 KB Output is correct
6 Correct 426 ms 88032 KB Output is correct
7 Correct 486 ms 88032 KB Output is correct
8 Correct 509 ms 88032 KB Output is correct
9 Correct 746 ms 88032 KB Output is correct
10 Correct 196 ms 88032 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 613 ms 88032 KB Output is correct
2 Correct 646 ms 88032 KB Output is correct
3 Correct 369 ms 88032 KB Output is correct
4 Correct 399 ms 88032 KB Output is correct
5 Correct 369 ms 88032 KB Output is correct
6 Correct 363 ms 88032 KB Output is correct
7 Correct 439 ms 88032 KB Output is correct
8 Correct 656 ms 88032 KB Output is correct
9 Correct 659 ms 88032 KB Output is correct
10 Correct 179 ms 88032 KB Output is correct