#include <bits/stdc++.h>
using namespace std;
int le[1000005],n,k,ch[27][1000005],par[20][1000005],dp[1000005];
char re[1000005];
void Init(void){};
void TypeLetter(char c){
int v=le[n],x=c-'a';
if(ch[x][v]==0){
k++;
ch[x][v]=k;
re[k]=c;
par[0][k]=v;
dp[k]=dp[v]+1;
for(int i=0;i<19;i++)par[i+1][k]=par[i][par[i][k]];
}
v=ch[x][v];
n++;
le[n]=v;
}
void UndoCommands(int x){
le[n+1]=le[n-x];
n++;
}
char GetLetter(int x){
x++;
int v=le[n];
for(int i=0;i<20;i++)if((dp[v]-x)>>i&1)v=par[i][v];
return re[v];
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
632 KB |
Output is correct |
2 |
Correct |
2 ms |
632 KB |
Output is correct |
3 |
Correct |
2 ms |
632 KB |
Output is correct |
4 |
Correct |
2 ms |
632 KB |
Output is correct |
5 |
Correct |
2 ms |
760 KB |
Output is correct |
6 |
Correct |
2 ms |
760 KB |
Output is correct |
7 |
Correct |
2 ms |
760 KB |
Output is correct |
8 |
Correct |
2 ms |
632 KB |
Output is correct |
9 |
Correct |
2 ms |
760 KB |
Output is correct |
10 |
Correct |
3 ms |
632 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
632 KB |
Output is correct |
2 |
Correct |
2 ms |
632 KB |
Output is correct |
3 |
Correct |
2 ms |
760 KB |
Output is correct |
4 |
Correct |
2 ms |
632 KB |
Output is correct |
5 |
Correct |
3 ms |
632 KB |
Output is correct |
6 |
Correct |
3 ms |
760 KB |
Output is correct |
7 |
Correct |
3 ms |
632 KB |
Output is correct |
8 |
Correct |
3 ms |
632 KB |
Output is correct |
9 |
Correct |
2 ms |
632 KB |
Output is correct |
10 |
Correct |
2 ms |
632 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
892 KB |
Output is correct |
2 |
Correct |
4 ms |
1016 KB |
Output is correct |
3 |
Correct |
4 ms |
1016 KB |
Output is correct |
4 |
Correct |
4 ms |
1272 KB |
Output is correct |
5 |
Correct |
4 ms |
1016 KB |
Output is correct |
6 |
Correct |
4 ms |
1400 KB |
Output is correct |
7 |
Correct |
4 ms |
1400 KB |
Output is correct |
8 |
Correct |
4 ms |
1272 KB |
Output is correct |
9 |
Correct |
4 ms |
1272 KB |
Output is correct |
10 |
Correct |
3 ms |
1016 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
397 ms |
109888 KB |
Output is correct |
2 |
Correct |
452 ms |
124924 KB |
Output is correct |
3 |
Correct |
440 ms |
121976 KB |
Output is correct |
4 |
Correct |
444 ms |
94220 KB |
Output is correct |
5 |
Correct |
411 ms |
106360 KB |
Output is correct |
6 |
Correct |
384 ms |
134520 KB |
Output is correct |
7 |
Correct |
389 ms |
67952 KB |
Output is correct |
8 |
Correct |
408 ms |
101476 KB |
Output is correct |
9 |
Correct |
490 ms |
138232 KB |
Output is correct |
10 |
Correct |
318 ms |
101600 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
489 ms |
93264 KB |
Output is correct |
2 |
Correct |
531 ms |
87032 KB |
Output is correct |
3 |
Correct |
428 ms |
93944 KB |
Output is correct |
4 |
Correct |
418 ms |
69368 KB |
Output is correct |
5 |
Correct |
347 ms |
103276 KB |
Output is correct |
6 |
Correct |
354 ms |
96248 KB |
Output is correct |
7 |
Correct |
344 ms |
102904 KB |
Output is correct |
8 |
Correct |
479 ms |
51480 KB |
Output is correct |
9 |
Correct |
556 ms |
90336 KB |
Output is correct |
10 |
Correct |
297 ms |
100864 KB |
Output is correct |