#include <bits/stdc++.h>
int p[1000005][22];
char character[1000005];
int point[1000005];
int depth[1000005];
int x = 0;
int cur = 0;
int mcur = 0;
void Init() {
for(int i = 0;i < 22;i++)
p[0][i] = -1;
depth[0] = 0;
}
void TypeLetter(char L) {
int next = mcur + 1;
point[x] = next;
character[next] = L;
depth[next] = depth[cur] + 1;
p[next][0] = cur;
for(int i = 1;i < 22;i++){
if(p[next][i-1] != -1) p[next][i] = p[p[next][i-1]][i-1];
else {p[next][i] = -1; continue;}
}
cur = next;
mcur++;
x++;
}
void UndoCommands(int U) {
cur = point[x - U - 1];
point[x] = cur;
x++;
}
char GetLetter(int P) {
int k = depth[cur] - P - 1;
int node = cur;
while(k > 0){
int kk = (k & (-k));
k -= kk;
kk = log2(kk);
node = p[node][kk];
}
return character[node];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
376 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
376 KB |
Output is correct |
6 |
Correct |
2 ms |
376 KB |
Output is correct |
7 |
Correct |
2 ms |
376 KB |
Output is correct |
8 |
Correct |
2 ms |
376 KB |
Output is correct |
9 |
Correct |
2 ms |
292 KB |
Output is correct |
10 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
376 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
376 KB |
Output is correct |
6 |
Correct |
2 ms |
376 KB |
Output is correct |
7 |
Correct |
2 ms |
376 KB |
Output is correct |
8 |
Correct |
2 ms |
376 KB |
Output is correct |
9 |
Correct |
2 ms |
376 KB |
Output is correct |
10 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
504 KB |
Output is correct |
2 |
Correct |
3 ms |
504 KB |
Output is correct |
3 |
Correct |
3 ms |
604 KB |
Output is correct |
4 |
Correct |
3 ms |
632 KB |
Output is correct |
5 |
Correct |
3 ms |
504 KB |
Output is correct |
6 |
Correct |
4 ms |
760 KB |
Output is correct |
7 |
Correct |
3 ms |
760 KB |
Output is correct |
8 |
Correct |
3 ms |
632 KB |
Output is correct |
9 |
Correct |
3 ms |
632 KB |
Output is correct |
10 |
Correct |
3 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
421 ms |
59768 KB |
Output is correct |
2 |
Correct |
575 ms |
66024 KB |
Output is correct |
3 |
Correct |
344 ms |
65400 KB |
Output is correct |
4 |
Correct |
310 ms |
54264 KB |
Output is correct |
5 |
Correct |
456 ms |
57464 KB |
Output is correct |
6 |
Correct |
313 ms |
71288 KB |
Output is correct |
7 |
Correct |
331 ms |
38264 KB |
Output is correct |
8 |
Correct |
325 ms |
54452 KB |
Output is correct |
9 |
Correct |
530 ms |
72820 KB |
Output is correct |
10 |
Correct |
180 ms |
54012 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
565 ms |
52208 KB |
Output is correct |
2 |
Correct |
499 ms |
47452 KB |
Output is correct |
3 |
Correct |
391 ms |
51704 KB |
Output is correct |
4 |
Correct |
330 ms |
41024 KB |
Output is correct |
5 |
Correct |
363 ms |
55416 KB |
Output is correct |
6 |
Correct |
400 ms |
52344 KB |
Output is correct |
7 |
Correct |
392 ms |
55624 KB |
Output is correct |
8 |
Correct |
636 ms |
30072 KB |
Output is correct |
9 |
Correct |
536 ms |
49016 KB |
Output is correct |
10 |
Correct |
178 ms |
53624 KB |
Output is correct |