#include <bits/stdc++.h>
using namespace std;
const int N = 1234567;
const int LOG = 20;
int t, from[N], depth[N], anc[N][LOG];
char type[N];
void Init() {
t = 1;
}
void TypeLetter(char L) {
type[t] = L;
depth[t] = depth[from[t - 1]] + 1;
anc[t][0] = from[t - 1];
for (int i = 1; depth[t] >> i; ++i) {
anc[t][i] = anc[anc[t][i - 1]][i - 1];
}
from[t] = t;
++t;
}
void UndoCommands(int U) {
from[t] = from[t - 1 - U];
++t;
}
char GetLetter(int P) {
int jump = depth[from[t - 1]] - 1 - P;
int x = from[t - 1];
for (int i = 0; jump >> i; ++i) {
if (jump >> i & 1) {
x = anc[x][i];
}
}
return type[x];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
384 KB |
Output is correct |
2 |
Correct |
2 ms |
384 KB |
Output is correct |
3 |
Correct |
2 ms |
384 KB |
Output is correct |
4 |
Correct |
2 ms |
384 KB |
Output is correct |
5 |
Correct |
2 ms |
384 KB |
Output is correct |
6 |
Correct |
3 ms |
384 KB |
Output is correct |
7 |
Correct |
2 ms |
384 KB |
Output is correct |
8 |
Correct |
2 ms |
384 KB |
Output is correct |
9 |
Correct |
3 ms |
384 KB |
Output is correct |
10 |
Correct |
2 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
384 KB |
Output is correct |
2 |
Correct |
2 ms |
384 KB |
Output is correct |
3 |
Correct |
2 ms |
384 KB |
Output is correct |
4 |
Correct |
2 ms |
384 KB |
Output is correct |
5 |
Correct |
2 ms |
384 KB |
Output is correct |
6 |
Correct |
2 ms |
384 KB |
Output is correct |
7 |
Correct |
3 ms |
384 KB |
Output is correct |
8 |
Correct |
2 ms |
384 KB |
Output is correct |
9 |
Correct |
2 ms |
412 KB |
Output is correct |
10 |
Correct |
2 ms |
384 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
512 KB |
Output is correct |
2 |
Correct |
4 ms |
640 KB |
Output is correct |
3 |
Correct |
4 ms |
812 KB |
Output is correct |
4 |
Correct |
0 ms |
768 KB |
Output is correct |
5 |
Correct |
4 ms |
640 KB |
Output is correct |
6 |
Correct |
4 ms |
768 KB |
Output is correct |
7 |
Correct |
3 ms |
768 KB |
Output is correct |
8 |
Correct |
5 ms |
896 KB |
Output is correct |
9 |
Correct |
4 ms |
784 KB |
Output is correct |
10 |
Correct |
4 ms |
768 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
632 ms |
63632 KB |
Output is correct |
2 |
Correct |
711 ms |
80544 KB |
Output is correct |
3 |
Correct |
471 ms |
80944 KB |
Output is correct |
4 |
Correct |
493 ms |
85800 KB |
Output is correct |
5 |
Correct |
693 ms |
75044 KB |
Output is correct |
6 |
Correct |
543 ms |
87228 KB |
Output is correct |
7 |
Correct |
642 ms |
76792 KB |
Output is correct |
8 |
Correct |
684 ms |
85504 KB |
Output is correct |
9 |
Correct |
778 ms |
81420 KB |
Output is correct |
10 |
Correct |
326 ms |
90668 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
666 ms |
58084 KB |
Output is correct |
2 |
Correct |
721 ms |
55008 KB |
Output is correct |
3 |
Correct |
413 ms |
68600 KB |
Output is correct |
4 |
Correct |
508 ms |
61416 KB |
Output is correct |
5 |
Correct |
542 ms |
78328 KB |
Output is correct |
6 |
Correct |
531 ms |
80840 KB |
Output is correct |
7 |
Correct |
562 ms |
80580 KB |
Output is correct |
8 |
Correct |
787 ms |
69776 KB |
Output is correct |
9 |
Correct |
834 ms |
67044 KB |
Output is correct |
10 |
Correct |
226 ms |
89544 KB |
Output is correct |