#include <bits/stdc++.h>
using namespace std;
const int mx = 1e6 + 5;
const int lg = 20;
int C[mx], I[mx];
char X[mx];
int p[lg][mx];
int n;
void show(int i){
printf("C : %d I : %d X : %c\n",C[i],I[i],X[C[i]]);
}
void Init() {
}
void TypeLetter(char L) {
++n;
I[n] = I[n-1] + 1;
C[n] = n;
X[n] = L;
p[0][n] = n - 1;
for(int j = 1; j < lg; j++){
//if(!p[j-1][n]) break;
//else{
p[j][n] = p[j-1][p[j-1][n]];
//}
}
}
void UndoCommands(int U) {
++n;
if(U == n){
I[n] = 0;
C[n] = 0;
X[n] = 'U';
return;
}
I[n] = I[n - 1 - U];
C[n] = C[n - 1 - U];
p[0][n] = n - 1 - U;
for(int j = 1; j < lg; j++){
//if(!p[j-1][n]) break;
//else{
p[j][n] = p[j-1][p[j-1][n]];
//}
}
}
char GetLetter(int P) {
++P;
int b = n;
for(int j = lg-1; j >= 0; j--){
if(I[b] == P) return X[C[b]];
if(I[p[j][b]] >= P) b = p[j][b];
}
return I[b] == P ? X[C[b]] : X[C[p[0][b]]];
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
504 KB |
Output is correct |
2 |
Correct |
3 ms |
628 KB |
Output is correct |
3 |
Correct |
2 ms |
712 KB |
Output is correct |
4 |
Correct |
2 ms |
712 KB |
Output is correct |
5 |
Correct |
2 ms |
792 KB |
Output is correct |
6 |
Correct |
2 ms |
792 KB |
Output is correct |
7 |
Correct |
2 ms |
848 KB |
Output is correct |
8 |
Correct |
2 ms |
876 KB |
Output is correct |
9 |
Correct |
2 ms |
876 KB |
Output is correct |
10 |
Correct |
2 ms |
876 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
876 KB |
Output is correct |
2 |
Correct |
2 ms |
876 KB |
Output is correct |
3 |
Correct |
2 ms |
876 KB |
Output is correct |
4 |
Correct |
2 ms |
876 KB |
Output is correct |
5 |
Correct |
2 ms |
876 KB |
Output is correct |
6 |
Correct |
2 ms |
876 KB |
Output is correct |
7 |
Correct |
2 ms |
876 KB |
Output is correct |
8 |
Correct |
2 ms |
876 KB |
Output is correct |
9 |
Correct |
2 ms |
876 KB |
Output is correct |
10 |
Correct |
3 ms |
876 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
3 ms |
892 KB |
Output is correct |
2 |
Correct |
3 ms |
1020 KB |
Output is correct |
3 |
Correct |
4 ms |
1148 KB |
Output is correct |
4 |
Correct |
4 ms |
1152 KB |
Output is correct |
5 |
Correct |
4 ms |
1152 KB |
Output is correct |
6 |
Correct |
5 ms |
1152 KB |
Output is correct |
7 |
Correct |
3 ms |
1152 KB |
Output is correct |
8 |
Correct |
3 ms |
1152 KB |
Output is correct |
9 |
Correct |
3 ms |
1152 KB |
Output is correct |
10 |
Correct |
3 ms |
1152 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
453 ms |
63064 KB |
Output is correct |
2 |
Correct |
477 ms |
76924 KB |
Output is correct |
3 |
Correct |
399 ms |
76924 KB |
Output is correct |
4 |
Correct |
489 ms |
80076 KB |
Output is correct |
5 |
Correct |
587 ms |
80076 KB |
Output is correct |
6 |
Correct |
410 ms |
83368 KB |
Output is correct |
7 |
Execution timed out |
1078 ms |
83368 KB |
Time limit exceeded |
8 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
869 ms |
83368 KB |
Output is correct |
2 |
Correct |
991 ms |
83368 KB |
Output is correct |
3 |
Correct |
438 ms |
83368 KB |
Output is correct |
4 |
Correct |
522 ms |
83368 KB |
Output is correct |
5 |
Correct |
415 ms |
83368 KB |
Output is correct |
6 |
Correct |
457 ms |
83368 KB |
Output is correct |
7 |
Correct |
472 ms |
83368 KB |
Output is correct |
8 |
Execution timed out |
1082 ms |
83368 KB |
Time limit exceeded |
9 |
Halted |
0 ms |
0 KB |
- |