#include <bits/stdc++.h>
using namespace std;
#define SZ 20005555
int an=0,ch[SZ][2];
char va[SZ];
int edt(int x,int l,int r,int p,char u)
{
int y=++an;
if(l==r) {va[y]=u; return y;}
int m=(l+r)>>1;
if(p<=m)
ch[y][1]=ch[x][1],
ch[y][0]=edt(ch[x][0],l,m,p,u);
else
ch[y][0]=ch[x][0],
ch[y][1]=edt(ch[x][1],m+1,r,p,u);
return y;
}
char qry(int x,int l,int r,int p)
{
if(l==r) return va[x];
int m=(l+r)>>1;
if(p<=m) return qry(ch[x][0],l,m,p);
return qry(ch[x][1],m+1,r,p);
}
int rs[SZ],cu=0,ls[SZ];
void Init() {}
void TypeLetter(char L)
{
++cu; ls[cu]=ls[cu-1]+1;
rs[cu]=edt(rs[cu-1],0,1.001e6,ls[cu-1],L);
}
void UndoCommands(int U)
{
++cu; ls[cu]=ls[cu-U-1]; rs[cu]=rs[cu-U-1];
}
char GetLetter(int P)
{return qry(rs[cu],0,1.001e6,P);}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
376 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
376 KB |
Output is correct |
6 |
Correct |
2 ms |
376 KB |
Output is correct |
7 |
Correct |
2 ms |
380 KB |
Output is correct |
8 |
Correct |
2 ms |
376 KB |
Output is correct |
9 |
Correct |
2 ms |
376 KB |
Output is correct |
10 |
Correct |
2 ms |
292 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
376 KB |
Output is correct |
3 |
Correct |
2 ms |
376 KB |
Output is correct |
4 |
Correct |
2 ms |
376 KB |
Output is correct |
5 |
Correct |
2 ms |
376 KB |
Output is correct |
6 |
Correct |
2 ms |
376 KB |
Output is correct |
7 |
Correct |
2 ms |
380 KB |
Output is correct |
8 |
Correct |
2 ms |
376 KB |
Output is correct |
9 |
Correct |
2 ms |
376 KB |
Output is correct |
10 |
Correct |
2 ms |
376 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
632 KB |
Output is correct |
2 |
Correct |
3 ms |
672 KB |
Output is correct |
3 |
Correct |
3 ms |
632 KB |
Output is correct |
4 |
Correct |
3 ms |
1016 KB |
Output is correct |
5 |
Correct |
3 ms |
632 KB |
Output is correct |
6 |
Correct |
3 ms |
1144 KB |
Output is correct |
7 |
Correct |
3 ms |
1144 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 |
760 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
312 ms |
116600 KB |
Output is correct |
2 |
Correct |
303 ms |
128888 KB |
Output is correct |
3 |
Correct |
348 ms |
126880 KB |
Output is correct |
4 |
Correct |
378 ms |
103416 KB |
Output is correct |
5 |
Correct |
378 ms |
110956 KB |
Output is correct |
6 |
Correct |
309 ms |
139512 KB |
Output is correct |
7 |
Correct |
322 ms |
70648 KB |
Output is correct |
8 |
Correct |
338 ms |
104440 KB |
Output is correct |
9 |
Correct |
323 ms |
142420 KB |
Output is correct |
10 |
Correct |
206 ms |
105208 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
348 ms |
100600 KB |
Output is correct |
2 |
Correct |
443 ms |
89336 KB |
Output is correct |
3 |
Correct |
377 ms |
98392 KB |
Output is correct |
4 |
Correct |
404 ms |
75100 KB |
Output is correct |
5 |
Correct |
286 ms |
106916 KB |
Output is correct |
6 |
Correct |
283 ms |
100728 KB |
Output is correct |
7 |
Correct |
297 ms |
107272 KB |
Output is correct |
8 |
Correct |
377 ms |
53800 KB |
Output is correct |
9 |
Correct |
457 ms |
92536 KB |
Output is correct |
10 |
Correct |
221 ms |
104312 KB |
Output is correct |