#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
int now = 0;
class Crayfish {
public :
char letter;
int len;
int par[20];
}s[N];
void Init() {}
void TypeLetter(char L) {
now++;
s[now] = s[now - 1];
s[now].letter = L;
s[now].len = s[now - 1].len + 1;
s[now].par[0] = now - 1;
for(int i = 1; i < 20; i++) {
s[now].par[i] = s[s[now].par[i - 1]].par[i - 1];
}
}
void UndoCommands(int U) {
now++;
s[now] = s[now - U - 1];
}
char GetLetter(int P) {
P = s[now].len - P - 1;
int res = now;
for(int i = 0; i < 20; i++) {
if(P & (1<<i)) {
res = s[res].par[i];
}
}
return s[res].letter;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
212 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
212 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
1 ms |
320 KB |
Output is correct |
9 |
Correct |
1 ms |
312 KB |
Output is correct |
10 |
Correct |
1 ms |
212 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
312 KB |
Output is correct |
2 |
Correct |
1 ms |
212 KB |
Output is correct |
3 |
Correct |
1 ms |
312 KB |
Output is correct |
4 |
Correct |
1 ms |
212 KB |
Output is correct |
5 |
Correct |
1 ms |
212 KB |
Output is correct |
6 |
Correct |
1 ms |
212 KB |
Output is correct |
7 |
Correct |
1 ms |
212 KB |
Output is correct |
8 |
Correct |
0 ms |
212 KB |
Output is correct |
9 |
Correct |
1 ms |
312 KB |
Output is correct |
10 |
Correct |
1 ms |
256 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
468 KB |
Output is correct |
2 |
Correct |
2 ms |
468 KB |
Output is correct |
3 |
Correct |
2 ms |
596 KB |
Output is correct |
4 |
Correct |
1 ms |
724 KB |
Output is correct |
5 |
Correct |
2 ms |
596 KB |
Output is correct |
6 |
Correct |
2 ms |
724 KB |
Output is correct |
7 |
Correct |
2 ms |
596 KB |
Output is correct |
8 |
Correct |
2 ms |
724 KB |
Output is correct |
9 |
Correct |
2 ms |
724 KB |
Output is correct |
10 |
Correct |
2 ms |
724 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
318 ms |
65648 KB |
Output is correct |
2 |
Correct |
350 ms |
79712 KB |
Output is correct |
3 |
Correct |
307 ms |
79820 KB |
Output is correct |
4 |
Correct |
321 ms |
84768 KB |
Output is correct |
5 |
Correct |
358 ms |
74136 KB |
Output is correct |
6 |
Correct |
293 ms |
86016 KB |
Output is correct |
7 |
Correct |
357 ms |
75988 KB |
Output is correct |
8 |
Correct |
337 ms |
84368 KB |
Output is correct |
9 |
Correct |
373 ms |
80400 KB |
Output is correct |
10 |
Correct |
233 ms |
89564 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
353 ms |
61236 KB |
Output is correct |
2 |
Correct |
385 ms |
54292 KB |
Output is correct |
3 |
Correct |
301 ms |
67788 KB |
Output is correct |
4 |
Correct |
313 ms |
60768 KB |
Output is correct |
5 |
Correct |
296 ms |
77276 KB |
Output is correct |
6 |
Correct |
316 ms |
79756 KB |
Output is correct |
7 |
Correct |
307 ms |
79632 KB |
Output is correct |
8 |
Correct |
429 ms |
69052 KB |
Output is correct |
9 |
Correct |
404 ms |
66168 KB |
Output is correct |
10 |
Correct |
228 ms |
88524 KB |
Output is correct |