#include <bits/stdc++.h>
using namespace std;
#define REP(i, a, b) for(int i = a; i < b; i++)
int par[1000069], kpar[1000069], h[1000069], cnt; char c[1000069];
void Init() {}
void TypeLetter(char L) {
cnt++;
par[cnt]=cnt-1;
c[cnt]=L;
h[cnt]=h[cnt-1]+1;
if(h[cnt-1]+h[kpar[kpar[cnt-1]]]==(h[kpar[cnt-1]]<<1)) kpar[cnt]=kpar[kpar[cnt-1]];
else kpar[cnt]=cnt-1;
}
void UndoCommands(int U) {
cnt++;
par[cnt]=par[cnt-U-1];
kpar[cnt]=kpar[cnt-U-1];
h[cnt]=h[cnt-U-1];
c[cnt]=c[cnt-U-1];
}
char GetLetter(int P) {
int cur=cnt;
while(h[cur]>P+1) {
if(kpar[cur]!=-1&&h[kpar[cur]]>=P+1) cur=kpar[cur];
else cur=par[cur];
}
return c[cur];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
340 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
0 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
308 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
312 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
320 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
312 KB |
Output is correct |
4 |
Correct |
1 ms |
316 KB |
Output is correct |
5 |
Correct |
1 ms |
340 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
340 KB |
Output is correct |
9 |
Correct |
1 ms |
212 KB |
Output is correct |
10 |
Correct |
1 ms |
308 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
1 ms |
340 KB |
Output is correct |
2 |
Correct |
2 ms |
340 KB |
Output is correct |
3 |
Correct |
1 ms |
340 KB |
Output is correct |
4 |
Correct |
2 ms |
328 KB |
Output is correct |
5 |
Correct |
2 ms |
340 KB |
Output is correct |
6 |
Correct |
2 ms |
384 KB |
Output is correct |
7 |
Correct |
1 ms |
340 KB |
Output is correct |
8 |
Correct |
2 ms |
332 KB |
Output is correct |
9 |
Correct |
1 ms |
340 KB |
Output is correct |
10 |
Correct |
1 ms |
332 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
134 ms |
13320 KB |
Output is correct |
2 |
Correct |
158 ms |
15560 KB |
Output is correct |
3 |
Correct |
153 ms |
16172 KB |
Output is correct |
4 |
Correct |
167 ms |
17592 KB |
Output is correct |
5 |
Correct |
233 ms |
15632 KB |
Output is correct |
6 |
Correct |
147 ms |
16596 KB |
Output is correct |
7 |
Correct |
239 ms |
16484 KB |
Output is correct |
8 |
Correct |
171 ms |
17372 KB |
Output is correct |
9 |
Correct |
174 ms |
16104 KB |
Output is correct |
10 |
Correct |
105 ms |
16908 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
190 ms |
13568 KB |
Output is correct |
2 |
Correct |
293 ms |
13528 KB |
Output is correct |
3 |
Correct |
158 ms |
15224 KB |
Output is correct |
4 |
Correct |
180 ms |
14492 KB |
Output is correct |
5 |
Correct |
128 ms |
15888 KB |
Output is correct |
6 |
Correct |
139 ms |
16096 KB |
Output is correct |
7 |
Correct |
182 ms |
16120 KB |
Output is correct |
8 |
Correct |
244 ms |
15640 KB |
Output is correct |
9 |
Correct |
269 ms |
15276 KB |
Output is correct |
10 |
Correct |
136 ms |
16852 KB |
Output is correct |