#include <iostream>
int const nmax = 1000000;
using ll = long long;
#define MIN(a, b) (((a) < (b)) ? (a) : (b))
#define MAX(a, b) (((a) < (b)) ? (b) : (a))
char last;
int far[20][1 + nmax], ptr = 0;
int level[1 + nmax];
char chr[1 + nmax];
void Init() {}
void TypeLetter(char L) {
++ptr;
far[0][ptr] = ptr - 1;
for(int h = 1; h < 20; h++)
far[h][ptr] = far[h - 1][far[h - 1][ptr]];
level[ptr] = level[far[0][ptr]] + 1;
chr[ptr] = L;
}
void UndoCommands(int U) {
++ptr;
far[0][ptr] = ptr - 1 - U;
for(int h = 1; h < 20; h++)
far[h][ptr] = far[h - 1][far[h - 1][ptr]];
level[ptr] = level[far[0][ptr]];
}
char GetLetter(int P) {
int pos = ptr;
P++;
for(int h = 19; 0 <= h; h--)
if(P <= level[far[h][pos]] )
pos = far[h][pos];
return chr[pos];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
504 KB |
Output is correct |
2 |
Correct |
2 ms |
504 KB |
Output is correct |
3 |
Correct |
2 ms |
504 KB |
Output is correct |
4 |
Correct |
2 ms |
504 KB |
Output is correct |
5 |
Correct |
2 ms |
504 KB |
Output is correct |
6 |
Correct |
2 ms |
504 KB |
Output is correct |
7 |
Correct |
2 ms |
376 KB |
Output is correct |
8 |
Correct |
2 ms |
504 KB |
Output is correct |
9 |
Correct |
2 ms |
504 KB |
Output is correct |
10 |
Correct |
2 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
504 KB |
Output is correct |
2 |
Correct |
2 ms |
504 KB |
Output is correct |
3 |
Correct |
2 ms |
504 KB |
Output is correct |
4 |
Correct |
2 ms |
504 KB |
Output is correct |
5 |
Correct |
2 ms |
504 KB |
Output is correct |
6 |
Correct |
2 ms |
504 KB |
Output is correct |
7 |
Correct |
2 ms |
504 KB |
Output is correct |
8 |
Correct |
2 ms |
504 KB |
Output is correct |
9 |
Correct |
2 ms |
504 KB |
Output is correct |
10 |
Correct |
2 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
632 KB |
Output is correct |
2 |
Correct |
3 ms |
760 KB |
Output is correct |
3 |
Correct |
3 ms |
892 KB |
Output is correct |
4 |
Correct |
3 ms |
888 KB |
Output is correct |
5 |
Correct |
3 ms |
760 KB |
Output is correct |
6 |
Correct |
3 ms |
888 KB |
Output is correct |
7 |
Correct |
3 ms |
888 KB |
Output is correct |
8 |
Correct |
3 ms |
888 KB |
Output is correct |
9 |
Correct |
3 ms |
888 KB |
Output is correct |
10 |
Correct |
3 ms |
888 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
408 ms |
60208 KB |
Output is correct |
2 |
Correct |
431 ms |
73180 KB |
Output is correct |
3 |
Correct |
395 ms |
72696 KB |
Output is correct |
4 |
Correct |
473 ms |
76108 KB |
Output is correct |
5 |
Correct |
559 ms |
67288 KB |
Output is correct |
6 |
Correct |
362 ms |
79352 KB |
Output is correct |
7 |
Correct |
996 ms |
68108 KB |
Output is correct |
8 |
Correct |
810 ms |
76972 KB |
Output is correct |
9 |
Correct |
488 ms |
74044 KB |
Output is correct |
10 |
Correct |
283 ms |
83192 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
686 ms |
55224 KB |
Output is correct |
2 |
Correct |
785 ms |
47860 KB |
Output is correct |
3 |
Correct |
436 ms |
60536 KB |
Output is correct |
4 |
Correct |
494 ms |
52572 KB |
Output is correct |
5 |
Correct |
400 ms |
70492 KB |
Output is correct |
6 |
Correct |
428 ms |
72928 KB |
Output is correct |
7 |
Correct |
458 ms |
72880 KB |
Output is correct |
8 |
Execution timed out |
1088 ms |
59656 KB |
Time limit exceeded |
9 |
Halted |
0 ms |
0 KB |
- |