#include<bits/stdc++.h>
using namespace std;
int node[1000006];
int NEXT_FREE_INDEX=1;
int n=1;
int id[1000006];
char letter[1000006];
int p[1000006];
int len;
int cont=0;
void Init() {
len=-1;
id[0]=-1;
}
void TypeLetter(char L) {
cont++;
node[n]=NEXT_FREE_INDEX;
id[NEXT_FREE_INDEX]=id[ node[n-1] ]+1;
letter[NEXT_FREE_INDEX]=L;
p[NEXT_FREE_INDEX]=node[n-1];
NEXT_FREE_INDEX++;
n++;
}
void UndoCommands(int U) {
cont++;
node[n]=node[n-U-1];
n++;
}
vector<char> A;
bool copied=false;
char GetLetter(int P) {
cont++;
if(cont<=5000){
int k=node[n-1];
while(id[k]>P){
k=p[k];
}
return letter[k];
}
else if(!copied){
int k=node[n-1];
while(id[k]>=0){
A.push_back(letter[k]);
k=p[k];
}
reverse(A.begin(),A.end());
copied=true;
return A[P];
}
else
return A[P];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
376 KB |
Output is correct |
3 |
Correct |
5 ms |
376 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
4 ms |
376 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
7 |
Correct |
5 ms |
376 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
376 KB |
Output is correct |
10 |
Correct |
5 ms |
504 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
5 ms |
376 KB |
Output is correct |
2 |
Correct |
5 ms |
380 KB |
Output is correct |
3 |
Correct |
5 ms |
376 KB |
Output is correct |
4 |
Correct |
5 ms |
376 KB |
Output is correct |
5 |
Correct |
5 ms |
376 KB |
Output is correct |
6 |
Correct |
5 ms |
376 KB |
Output is correct |
7 |
Correct |
5 ms |
376 KB |
Output is correct |
8 |
Correct |
5 ms |
376 KB |
Output is correct |
9 |
Correct |
5 ms |
376 KB |
Output is correct |
10 |
Correct |
5 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
6 ms |
376 KB |
Output is correct |
2 |
Correct |
6 ms |
376 KB |
Output is correct |
3 |
Correct |
6 ms |
376 KB |
Output is correct |
4 |
Correct |
6 ms |
376 KB |
Output is correct |
5 |
Correct |
6 ms |
376 KB |
Output is correct |
6 |
Correct |
6 ms |
376 KB |
Output is correct |
7 |
Correct |
6 ms |
376 KB |
Output is correct |
8 |
Correct |
6 ms |
376 KB |
Output is correct |
9 |
Correct |
7 ms |
376 KB |
Output is correct |
10 |
Correct |
6 ms |
376 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
153 ms |
9336 KB |
Output is correct |
2 |
Correct |
167 ms |
14072 KB |
Output is correct |
3 |
Correct |
183 ms |
14328 KB |
Output is correct |
4 |
Correct |
247 ms |
14928 KB |
Output is correct |
5 |
Correct |
202 ms |
13688 KB |
Output is correct |
6 |
Correct |
177 ms |
14964 KB |
Output is correct |
7 |
Correct |
237 ms |
12916 KB |
Output is correct |
8 |
Correct |
221 ms |
14452 KB |
Output is correct |
9 |
Correct |
180 ms |
15220 KB |
Output is correct |
10 |
Correct |
179 ms |
12792 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Runtime error |
190 ms |
17656 KB |
Execution killed with signal 11 (could be triggered by violating memory limits) |
2 |
Halted |
0 ms |
0 KB |
- |