const int MXN = 1000001;
char s[MXN];
int up[20][MXN], D[MXN], p[MXN];
int idx = 0, c = 0;
void Init(){}
void TypeLetter(char L){
s[++idx] = L;
up[0][idx] = p[c];
D[idx] = D[p[c]] + 1;
p[++c] = idx;
for(int i = 1; i < 20; i++) up[i][idx] = up[i-1][up[i-1][idx]];
}
void UndoCommands(int U){
++c;
p[c] = p[c-U-1];
}
char GetLetter(int P){
int v = p[c];
++P;
for(int i = 19; i >= 0; --i) if((D[v] - P) & (1 << i)) v = up[i][v];
return s[v];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
332 KB |
Output is correct |
2 |
Correct |
1 ms |
332 KB |
Output is correct |
3 |
Correct |
0 ms |
460 KB |
Output is correct |
4 |
Correct |
1 ms |
460 KB |
Output is correct |
5 |
Correct |
1 ms |
332 KB |
Output is correct |
6 |
Correct |
0 ms |
460 KB |
Output is correct |
7 |
Correct |
0 ms |
460 KB |
Output is correct |
8 |
Correct |
0 ms |
460 KB |
Output is correct |
9 |
Correct |
1 ms |
460 KB |
Output is correct |
10 |
Correct |
0 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
460 KB |
Output is correct |
2 |
Correct |
1 ms |
332 KB |
Output is correct |
3 |
Correct |
0 ms |
332 KB |
Output is correct |
4 |
Correct |
0 ms |
332 KB |
Output is correct |
5 |
Correct |
0 ms |
460 KB |
Output is correct |
6 |
Correct |
0 ms |
460 KB |
Output is correct |
7 |
Correct |
1 ms |
460 KB |
Output is correct |
8 |
Correct |
0 ms |
460 KB |
Output is correct |
9 |
Correct |
0 ms |
460 KB |
Output is correct |
10 |
Correct |
1 ms |
460 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
460 KB |
Output is correct |
2 |
Correct |
2 ms |
588 KB |
Output is correct |
3 |
Correct |
2 ms |
588 KB |
Output is correct |
4 |
Correct |
2 ms |
716 KB |
Output is correct |
5 |
Correct |
2 ms |
588 KB |
Output is correct |
6 |
Correct |
2 ms |
716 KB |
Output is correct |
7 |
Correct |
2 ms |
716 KB |
Output is correct |
8 |
Correct |
2 ms |
588 KB |
Output is correct |
9 |
Correct |
2 ms |
716 KB |
Output is correct |
10 |
Correct |
1 ms |
496 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
290 ms |
54504 KB |
Output is correct |
2 |
Correct |
299 ms |
60896 KB |
Output is correct |
3 |
Correct |
289 ms |
60532 KB |
Output is correct |
4 |
Correct |
277 ms |
50592 KB |
Output is correct |
5 |
Correct |
363 ms |
53296 KB |
Output is correct |
6 |
Correct |
260 ms |
65804 KB |
Output is correct |
7 |
Correct |
335 ms |
35892 KB |
Output is correct |
8 |
Correct |
289 ms |
50688 KB |
Output is correct |
9 |
Correct |
329 ms |
67268 KB |
Output is correct |
10 |
Correct |
214 ms |
50268 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
413 ms |
47500 KB |
Output is correct |
2 |
Correct |
519 ms |
44084 KB |
Output is correct |
3 |
Correct |
289 ms |
48108 KB |
Output is correct |
4 |
Correct |
344 ms |
38508 KB |
Output is correct |
5 |
Correct |
258 ms |
51480 KB |
Output is correct |
6 |
Correct |
269 ms |
48664 KB |
Output is correct |
7 |
Correct |
278 ms |
51524 KB |
Output is correct |
8 |
Correct |
391 ms |
28336 KB |
Output is correct |
9 |
Correct |
462 ms |
45572 KB |
Output is correct |
10 |
Correct |
210 ms |
49804 KB |
Output is correct |