#include <vector>
#include <map>
using namespace std;
map<char, int> trie[1000001]; int prv[1000001][20];
int node,now,time,hist[1000001],len[1000001]; char last[10000001];
void Init() {}
void TypeLetter(char L) {
int &n = trie[now][L];
if (n == 0){
n = ++node;
prv[n][0] = now;
for (int i=1;i<20;i++){
prv[n][i] = prv[prv[n][i-1]][i-1];
if (!prv[n][i]) break;
}
len[n] = len[now] + 1;
last[n] = L;
}
hist[++time] = now = n;
}
void UndoCommands(int U) {
now = hist[time-U];
hist[++time] = now;
}
char GetLetter(int P) {
int x = now; P = len[x] - P - 1;
for (int i=0;i<20;i++) if (P & (1 << i)) x = prv[x][i];
return last[x];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
4 ms |
143780 KB |
Output is correct |
2 |
Correct |
4 ms |
143780 KB |
Output is correct |
3 |
Correct |
8 ms |
143912 KB |
Output is correct |
4 |
Correct |
8 ms |
143912 KB |
Output is correct |
5 |
Correct |
8 ms |
143912 KB |
Output is correct |
6 |
Correct |
8 ms |
143912 KB |
Output is correct |
7 |
Correct |
8 ms |
143912 KB |
Output is correct |
8 |
Correct |
8 ms |
143780 KB |
Output is correct |
9 |
Correct |
8 ms |
143912 KB |
Output is correct |
10 |
Correct |
4 ms |
143780 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
8 ms |
143780 KB |
Output is correct |
2 |
Correct |
12 ms |
143780 KB |
Output is correct |
3 |
Correct |
8 ms |
143780 KB |
Output is correct |
4 |
Correct |
8 ms |
143780 KB |
Output is correct |
5 |
Correct |
12 ms |
143780 KB |
Output is correct |
6 |
Correct |
12 ms |
143912 KB |
Output is correct |
7 |
Correct |
0 ms |
143780 KB |
Output is correct |
8 |
Correct |
16 ms |
143780 KB |
Output is correct |
9 |
Correct |
8 ms |
143912 KB |
Output is correct |
10 |
Correct |
8 ms |
143780 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
12 ms |
143912 KB |
Output is correct |
2 |
Correct |
12 ms |
143912 KB |
Output is correct |
3 |
Correct |
4 ms |
143912 KB |
Output is correct |
4 |
Correct |
16 ms |
143912 KB |
Output is correct |
5 |
Correct |
12 ms |
143912 KB |
Output is correct |
6 |
Correct |
12 ms |
144044 KB |
Output is correct |
7 |
Correct |
4 ms |
144044 KB |
Output is correct |
8 |
Correct |
8 ms |
143912 KB |
Output is correct |
9 |
Correct |
8 ms |
143912 KB |
Output is correct |
10 |
Correct |
12 ms |
143912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
484 ms |
170708 KB |
Output is correct |
2 |
Correct |
536 ms |
173348 KB |
Output is correct |
3 |
Correct |
508 ms |
172556 KB |
Output is correct |
4 |
Correct |
476 ms |
165032 KB |
Output is correct |
5 |
Correct |
460 ms |
168464 KB |
Output is correct |
6 |
Correct |
404 ms |
175724 KB |
Output is correct |
7 |
Correct |
384 ms |
158432 KB |
Output is correct |
8 |
Correct |
420 ms |
167012 KB |
Output is correct |
9 |
Correct |
568 ms |
176648 KB |
Output is correct |
10 |
Correct |
272 ms |
167408 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
528 ms |
166484 KB |
Output is correct |
2 |
Correct |
544 ms |
163580 KB |
Output is correct |
3 |
Correct |
436 ms |
165296 KB |
Output is correct |
4 |
Correct |
464 ms |
158696 KB |
Output is correct |
5 |
Correct |
376 ms |
167804 KB |
Output is correct |
6 |
Correct |
428 ms |
165956 KB |
Output is correct |
7 |
Correct |
420 ms |
167672 KB |
Output is correct |
8 |
Correct |
476 ms |
154340 KB |
Output is correct |
9 |
Correct |
612 ms |
164240 KB |
Output is correct |
10 |
Correct |
300 ms |
167144 KB |
Output is correct |