#include <cstdio>
const int M=1000010;
char letter[M]; /// access by state
int depth[M]; /// access by state
int parent[M][21]; /// access by state
int state[M]; /// access by command
int coms, stats;
void Init(){
}
void TypeLetter(char x){
coms++; stats++;
state[coms ]=stats;
letter[stats]=x;
int myp = state[coms-1];
parent[stats][0]=myp;
depth[stats]=depth[myp]+1;
int i;
for(i=1;i<=20;i++){
parent[stats][i]=parent[parent[stats][i-1]][i-1];
}
}
void UndoCommands(int x){
coms++;
state[coms]=state[coms-1-x];
}
char GetLetter(int pos){
int cur=state[coms];
pos = depth[cur]-pos-1;
int i;
for(i=0;i<=20;i++){
if(pos&(1<<i)){
cur = parent[cur][i];
}
}
return letter[cur];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
91900 KB |
Output is correct |
2 |
Correct |
0 ms |
91900 KB |
Output is correct |
3 |
Correct |
0 ms |
91900 KB |
Output is correct |
4 |
Correct |
0 ms |
91900 KB |
Output is correct |
5 |
Correct |
0 ms |
91900 KB |
Output is correct |
6 |
Correct |
0 ms |
91900 KB |
Output is correct |
7 |
Correct |
0 ms |
91900 KB |
Output is correct |
8 |
Correct |
0 ms |
91900 KB |
Output is correct |
9 |
Correct |
0 ms |
91900 KB |
Output is correct |
10 |
Correct |
0 ms |
91900 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
91900 KB |
Output is correct |
2 |
Correct |
0 ms |
91900 KB |
Output is correct |
3 |
Correct |
0 ms |
91900 KB |
Output is correct |
4 |
Correct |
0 ms |
91900 KB |
Output is correct |
5 |
Correct |
0 ms |
91900 KB |
Output is correct |
6 |
Correct |
0 ms |
91900 KB |
Output is correct |
7 |
Correct |
0 ms |
91900 KB |
Output is correct |
8 |
Correct |
0 ms |
91900 KB |
Output is correct |
9 |
Correct |
0 ms |
91900 KB |
Output is correct |
10 |
Correct |
0 ms |
91900 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
0 ms |
91900 KB |
Output is correct |
2 |
Correct |
0 ms |
91900 KB |
Output is correct |
3 |
Correct |
0 ms |
91900 KB |
Output is correct |
4 |
Correct |
0 ms |
91900 KB |
Output is correct |
5 |
Correct |
0 ms |
91900 KB |
Output is correct |
6 |
Correct |
0 ms |
91900 KB |
Output is correct |
7 |
Correct |
0 ms |
91900 KB |
Output is correct |
8 |
Correct |
0 ms |
91900 KB |
Output is correct |
9 |
Correct |
0 ms |
91900 KB |
Output is correct |
10 |
Correct |
0 ms |
91900 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
364 ms |
91900 KB |
Output is correct |
2 |
Correct |
420 ms |
91900 KB |
Output is correct |
3 |
Correct |
336 ms |
91900 KB |
Output is correct |
4 |
Correct |
320 ms |
91900 KB |
Output is correct |
5 |
Correct |
376 ms |
91900 KB |
Output is correct |
6 |
Correct |
320 ms |
91900 KB |
Output is correct |
7 |
Correct |
340 ms |
91900 KB |
Output is correct |
8 |
Correct |
348 ms |
91900 KB |
Output is correct |
9 |
Correct |
456 ms |
91900 KB |
Output is correct |
10 |
Correct |
216 ms |
91900 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
428 ms |
91900 KB |
Output is correct |
2 |
Correct |
436 ms |
91900 KB |
Output is correct |
3 |
Correct |
324 ms |
91900 KB |
Output is correct |
4 |
Correct |
356 ms |
91900 KB |
Output is correct |
5 |
Correct |
312 ms |
91900 KB |
Output is correct |
6 |
Correct |
352 ms |
91900 KB |
Output is correct |
7 |
Correct |
332 ms |
91900 KB |
Output is correct |
8 |
Correct |
428 ms |
91900 KB |
Output is correct |
9 |
Correct |
508 ms |
91900 KB |
Output is correct |
10 |
Correct |
224 ms |
91900 KB |
Output is correct |