#include<bits/stdc++.h>
using namespace std;
int SZ = 0,commands = 0;
const int LIM = 40000005;
const int MAXN = 1000005;
char seg[LIM];
int lft[LIM];
int rgt[LIM];
int root[MAXN],len[MAXN];
int build(int l,int r){
int ind = ++SZ;
if(l == r){
seg[ind] = '.';
return ind;
}
int mid = (l+r)/2;
lft[ind] = build(l,mid);
rgt[ind] = build(mid+1,r);
return ind;
}
int update(int prev,int l,int r,int pos,char val){
int ind = ++SZ;
lft[ind] = lft[prev];
rgt[ind] = rgt[prev];
if(l == r){
seg[ind] = val;
return ind;
}
int mid = (l+r)/2;
if(pos <= mid) lft[ind] = update(lft[prev],l,mid,pos,val);
else rgt[ind] = update(rgt[prev],mid+1,r,pos,val);
return ind;
}
char query(int ind,int l,int r,int pos){
if(l == r) return seg[ind];
int mid = (l+r)/2;
if(pos <= mid) return query(lft[ind],l,mid,pos);
else return query(rgt[ind],mid+1,r,pos);
}
void Init(){
root[0] = build(0,1e6-1);
len[0] = 0;
}
void TypeLetter(char L){
commands++;
len[commands] = len[commands-1]+1;
root[commands] = update(root[commands-1],0,1e6-1,len[commands-1],L);
}
void UndoCommands(int U) {
commands++;
root[commands] = root[commands-U-1];
len[commands] = len[commands-U-1];
}
char GetLetter(int P) {
return query(root[commands],0,1e6-1,P);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
22 ms |
18048 KB |
Output is correct |
2 |
Correct |
22 ms |
17920 KB |
Output is correct |
3 |
Correct |
21 ms |
17920 KB |
Output is correct |
4 |
Correct |
22 ms |
17920 KB |
Output is correct |
5 |
Correct |
23 ms |
17920 KB |
Output is correct |
6 |
Correct |
22 ms |
17920 KB |
Output is correct |
7 |
Correct |
22 ms |
17912 KB |
Output is correct |
8 |
Correct |
22 ms |
18048 KB |
Output is correct |
9 |
Correct |
22 ms |
17912 KB |
Output is correct |
10 |
Correct |
21 ms |
17912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
23 ms |
17912 KB |
Output is correct |
2 |
Correct |
22 ms |
17912 KB |
Output is correct |
3 |
Correct |
22 ms |
17920 KB |
Output is correct |
4 |
Correct |
27 ms |
17920 KB |
Output is correct |
5 |
Correct |
21 ms |
17920 KB |
Output is correct |
6 |
Correct |
22 ms |
17920 KB |
Output is correct |
7 |
Correct |
22 ms |
17920 KB |
Output is correct |
8 |
Correct |
22 ms |
17920 KB |
Output is correct |
9 |
Correct |
21 ms |
17920 KB |
Output is correct |
10 |
Correct |
22 ms |
17920 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
22 ms |
18304 KB |
Output is correct |
2 |
Correct |
24 ms |
18296 KB |
Output is correct |
3 |
Correct |
23 ms |
18412 KB |
Output is correct |
4 |
Correct |
24 ms |
18560 KB |
Output is correct |
5 |
Correct |
24 ms |
18304 KB |
Output is correct |
6 |
Correct |
24 ms |
18784 KB |
Output is correct |
7 |
Correct |
24 ms |
18680 KB |
Output is correct |
8 |
Correct |
24 ms |
18560 KB |
Output is correct |
9 |
Correct |
26 ms |
18508 KB |
Output is correct |
10 |
Correct |
24 ms |
18296 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
418 ms |
130552 KB |
Output is correct |
2 |
Correct |
431 ms |
146424 KB |
Output is correct |
3 |
Correct |
431 ms |
144504 KB |
Output is correct |
4 |
Correct |
469 ms |
120952 KB |
Output is correct |
5 |
Correct |
543 ms |
128376 KB |
Output is correct |
6 |
Correct |
451 ms |
157076 KB |
Output is correct |
7 |
Correct |
544 ms |
88312 KB |
Output is correct |
8 |
Correct |
469 ms |
121956 KB |
Output is correct |
9 |
Correct |
509 ms |
159816 KB |
Output is correct |
10 |
Correct |
340 ms |
122848 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
504 ms |
113640 KB |
Output is correct |
2 |
Correct |
608 ms |
107128 KB |
Output is correct |
3 |
Correct |
442 ms |
116088 KB |
Output is correct |
4 |
Correct |
524 ms |
92816 KB |
Output is correct |
5 |
Correct |
409 ms |
124536 KB |
Output is correct |
6 |
Correct |
419 ms |
118392 KB |
Output is correct |
7 |
Correct |
425 ms |
124920 KB |
Output is correct |
8 |
Correct |
522 ms |
71320 KB |
Output is correct |
9 |
Correct |
647 ms |
110028 KB |
Output is correct |
10 |
Correct |
337 ms |
121936 KB |
Output is correct |