#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];
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 |
12 ms |
143780 KB |
Output is correct |
2 |
Correct |
12 ms |
143780 KB |
Output is correct |
3 |
Correct |
4 ms |
143912 KB |
Output is correct |
4 |
Correct |
16 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 |
12 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 |
8 ms |
143780 KB |
Output is correct |
2 |
Correct |
12 ms |
143780 KB |
Output is correct |
3 |
Correct |
4 ms |
143780 KB |
Output is correct |
4 |
Correct |
4 ms |
143780 KB |
Output is correct |
5 |
Correct |
8 ms |
143780 KB |
Output is correct |
6 |
Correct |
16 ms |
143912 KB |
Output is correct |
7 |
Correct |
8 ms |
143780 KB |
Output is correct |
8 |
Correct |
8 ms |
143780 KB |
Output is correct |
9 |
Correct |
4 ms |
143912 KB |
Output is correct |
10 |
Correct |
12 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 |
12 ms |
143912 KB |
Output is correct |
4 |
Correct |
12 ms |
143912 KB |
Output is correct |
5 |
Correct |
8 ms |
143912 KB |
Output is correct |
6 |
Correct |
8 ms |
144044 KB |
Output is correct |
7 |
Correct |
12 ms |
144044 KB |
Output is correct |
8 |
Correct |
8 ms |
143912 KB |
Output is correct |
9 |
Correct |
4 ms |
143912 KB |
Output is correct |
10 |
Correct |
8 ms |
143912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
512 ms |
170708 KB |
Output is correct |
2 |
Correct |
588 ms |
173348 KB |
Output is correct |
3 |
Correct |
520 ms |
172556 KB |
Output is correct |
4 |
Correct |
520 ms |
165032 KB |
Output is correct |
5 |
Correct |
480 ms |
168464 KB |
Output is correct |
6 |
Correct |
392 ms |
175724 KB |
Output is correct |
7 |
Correct |
380 ms |
158432 KB |
Output is correct |
8 |
Correct |
436 ms |
167012 KB |
Output is correct |
9 |
Correct |
604 ms |
176648 KB |
Output is correct |
10 |
Correct |
300 ms |
167408 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
552 ms |
166484 KB |
Output is correct |
2 |
Correct |
548 ms |
163580 KB |
Output is correct |
3 |
Correct |
464 ms |
165296 KB |
Output is correct |
4 |
Correct |
468 ms |
158696 KB |
Output is correct |
5 |
Correct |
396 ms |
167804 KB |
Output is correct |
6 |
Correct |
392 ms |
165956 KB |
Output is correct |
7 |
Correct |
428 ms |
167672 KB |
Output is correct |
8 |
Correct |
488 ms |
154340 KB |
Output is correct |
9 |
Correct |
604 ms |
164240 KB |
Output is correct |
10 |
Correct |
332 ms |
167144 KB |
Output is correct |