# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
120755 | MAMBA | 크레이피쉬 글쓰는 기계 (IOI12_scrivener) | C++14 | 334 ms | 262144 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define rep(i, j, k) for (int i = j; i < int(k); i++)
constexpr int N = 1e6 + 10;
struct node {
node* par[20];
char c = '\0';
int deep = -1;
node() { fill(par, par + 20, this); }
node(char c_, node* p) {
par[0] = p, c = c_;
deep = p->deep + 1;
rep(i, 1, 20) par[i] = par[i - 1]->par[i - 1];
}
} state[N];
int now;
void Init() { now = 0; }
void TypeLetter(char L) { state[++now] = node(L, &state[now - 1]); }
void UndoCommands(int U) { state[++now] = state[now - U - 1]; }
char GetLetter(int P) {
int goUp = state[now].deep - P;
node* me = &state[now];
rep(i, 0, 20) if (goUp >> i & 1) me = me->par[i];
return me->c;
}
컴파일 시 표준 에러 (stderr) 메시지
# | 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... |