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];
}
# |
결과 |
실행 시간 |
메모리 |
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 |
# |
결과 |
실행 시간 |
메모리 |
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 |
# |
결과 |
실행 시간 |
메모리 |
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 |
# |
결과 |
실행 시간 |
메모리 |
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 |
# |
결과 |
실행 시간 |
메모리 |
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 |