#define N 1000001
#define LN 19 /* LN = floor(log2(N)) */
int uu[N], pp[N][LN + 1], dd[N], n_, i; char cc[N];
void Init() {
n_ = 1;
}
void TypeLetter(char c) {
int l, u;
i++;
u = uu[i] = n_++;
cc[u] = c, pp[u][0] = uu[i - 1], dd[u] = dd[uu[i - 1]] + 1;
for (l = 1; 1 << l <= dd[u]; l++)
pp[u][l] = pp[pp[u][l - 1]][l - 1];
}
void UndoCommands(int k) {
i++, uu[i] = uu[i - 1 - k];
}
char GetLetter(int d) {
int u = uu[i], l;
d++;
for (l = LN; l >= 0; l--)
if (dd[u] - d >= 1 << l)
u = pp[u][l];
return cc[u];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
256 KB |
Output is correct |
2 |
Correct |
0 ms |
204 KB |
Output is correct |
3 |
Correct |
0 ms |
204 KB |
Output is correct |
4 |
Correct |
0 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
204 KB |
Output is correct |
6 |
Correct |
1 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
0 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
204 KB |
Output is correct |
2 |
Correct |
1 ms |
208 KB |
Output is correct |
3 |
Correct |
0 ms |
204 KB |
Output is correct |
4 |
Correct |
1 ms |
204 KB |
Output is correct |
5 |
Correct |
1 ms |
208 KB |
Output is correct |
6 |
Correct |
0 ms |
204 KB |
Output is correct |
7 |
Correct |
1 ms |
204 KB |
Output is correct |
8 |
Correct |
1 ms |
204 KB |
Output is correct |
9 |
Correct |
1 ms |
204 KB |
Output is correct |
10 |
Correct |
1 ms |
204 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
332 KB |
Output is correct |
2 |
Correct |
2 ms |
460 KB |
Output is correct |
3 |
Correct |
2 ms |
460 KB |
Output is correct |
4 |
Correct |
2 ms |
588 KB |
Output is correct |
5 |
Correct |
2 ms |
464 KB |
Output is correct |
6 |
Correct |
2 ms |
588 KB |
Output is correct |
7 |
Correct |
2 ms |
588 KB |
Output is correct |
8 |
Correct |
2 ms |
460 KB |
Output is correct |
9 |
Correct |
2 ms |
592 KB |
Output is correct |
10 |
Correct |
2 ms |
460 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
364 ms |
55096 KB |
Output is correct |
2 |
Correct |
395 ms |
60780 KB |
Output is correct |
3 |
Correct |
362 ms |
60336 KB |
Output is correct |
4 |
Correct |
345 ms |
50488 KB |
Output is correct |
5 |
Correct |
399 ms |
53156 KB |
Output is correct |
6 |
Correct |
309 ms |
65700 KB |
Output is correct |
7 |
Correct |
358 ms |
35744 KB |
Output is correct |
8 |
Correct |
383 ms |
50508 KB |
Output is correct |
9 |
Correct |
406 ms |
67256 KB |
Output is correct |
10 |
Correct |
240 ms |
49988 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
464 ms |
48448 KB |
Output is correct |
2 |
Correct |
586 ms |
44056 KB |
Output is correct |
3 |
Correct |
368 ms |
47952 KB |
Output is correct |
4 |
Correct |
440 ms |
38204 KB |
Output is correct |
5 |
Correct |
312 ms |
51268 KB |
Output is correct |
6 |
Correct |
319 ms |
48500 KB |
Output is correct |
7 |
Correct |
333 ms |
51408 KB |
Output is correct |
8 |
Correct |
433 ms |
28180 KB |
Output is correct |
9 |
Correct |
512 ms |
45452 KB |
Output is correct |
10 |
Correct |
263 ms |
49728 KB |
Output is correct |