#include <bits/stdc++.h>
using namespace std;
const int mx = 1e6 + 5;
const int lg = 20;
int D[mx], I[mx];
char X[mx];
int p[mx][lg];
int n;
void Init() {
}
void TypeLetter(char L) {
++n;
I[n] = n; X[n] = L;
p[n][0] = I[n-1];
D[n] = D[I[n-1]] + 1;
for(int j = 1; 1 << j <= D[n]; j++){
p[n][j] = p[p[n][j-1]][j-1];
}
}
void UndoCommands(int U) {
++n;
I[n] = I[n - 1 - U];
}
char GetLetter(int P) {
++P;
int b = I[n], dlt = D[b] - P;
for(int j = 0; j < lg; j++){
if(dlt >> j & 1) b = p[b][j];
}
return X[b];
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
376 KB |
Output is correct |
2 |
Correct |
2 ms |
512 KB |
Output is correct |
3 |
Correct |
2 ms |
512 KB |
Output is correct |
4 |
Correct |
2 ms |
512 KB |
Output is correct |
5 |
Correct |
7 ms |
512 KB |
Output is correct |
6 |
Correct |
2 ms |
512 KB |
Output is correct |
7 |
Correct |
2 ms |
512 KB |
Output is correct |
8 |
Correct |
2 ms |
532 KB |
Output is correct |
9 |
Correct |
2 ms |
536 KB |
Output is correct |
10 |
Correct |
2 ms |
536 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
2 ms |
544 KB |
Output is correct |
2 |
Correct |
2 ms |
572 KB |
Output is correct |
3 |
Correct |
2 ms |
572 KB |
Output is correct |
4 |
Correct |
2 ms |
612 KB |
Output is correct |
5 |
Correct |
2 ms |
644 KB |
Output is correct |
6 |
Correct |
2 ms |
680 KB |
Output is correct |
7 |
Correct |
2 ms |
808 KB |
Output is correct |
8 |
Correct |
3 ms |
808 KB |
Output is correct |
9 |
Correct |
2 ms |
808 KB |
Output is correct |
10 |
Correct |
2 ms |
808 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
3 ms |
840 KB |
Output is correct |
2 |
Correct |
3 ms |
980 KB |
Output is correct |
3 |
Correct |
4 ms |
1136 KB |
Output is correct |
4 |
Correct |
5 ms |
1160 KB |
Output is correct |
5 |
Correct |
3 ms |
1160 KB |
Output is correct |
6 |
Correct |
4 ms |
1212 KB |
Output is correct |
7 |
Correct |
4 ms |
1236 KB |
Output is correct |
8 |
Correct |
3 ms |
1260 KB |
Output is correct |
9 |
Correct |
4 ms |
1280 KB |
Output is correct |
10 |
Correct |
4 ms |
1280 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
469 ms |
63616 KB |
Output is correct |
2 |
Correct |
491 ms |
80128 KB |
Output is correct |
3 |
Correct |
394 ms |
80128 KB |
Output is correct |
4 |
Correct |
381 ms |
83164 KB |
Output is correct |
5 |
Correct |
412 ms |
83164 KB |
Output is correct |
6 |
Correct |
399 ms |
86556 KB |
Output is correct |
7 |
Correct |
439 ms |
86556 KB |
Output is correct |
8 |
Correct |
458 ms |
90552 KB |
Output is correct |
9 |
Correct |
531 ms |
91840 KB |
Output is correct |
10 |
Correct |
240 ms |
105500 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
486 ms |
105500 KB |
Output is correct |
2 |
Correct |
585 ms |
105500 KB |
Output is correct |
3 |
Correct |
377 ms |
105500 KB |
Output is correct |
4 |
Correct |
392 ms |
105500 KB |
Output is correct |
5 |
Correct |
375 ms |
105500 KB |
Output is correct |
6 |
Correct |
370 ms |
105500 KB |
Output is correct |
7 |
Correct |
377 ms |
105500 KB |
Output is correct |
8 |
Correct |
547 ms |
105500 KB |
Output is correct |
9 |
Correct |
570 ms |
105500 KB |
Output is correct |
10 |
Correct |
241 ms |
115688 KB |
Output is correct |