이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#define N 1000001
#define LN 19 /* LN = floor(log2(N)) */
int uu[N], pp[N][LN + 1], dd[N], n_, i; char cc[N];
void Init() {
n_ = 1;
}
void TypeLetter(char c) {
int l, u;
i++;
u = uu[i] = n_++;
cc[u] = c, pp[u][0] = uu[i - 1], dd[u] = dd[uu[i - 1]] + 1;
for (l = 1; 1 << l <= dd[u]; l++)
pp[u][l] = pp[pp[u][l - 1]][l - 1];
}
void UndoCommands(int k) {
i++, uu[i] = uu[i - 1 - k];
}
char GetLetter(int d) {
int u = uu[i], l;
d++;
for (l = LN; l >= 0; l--)
if (dd[u] - d >= 1 << l)
u = pp[u][l];
return cc[u];
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |