이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <algorithm>
#include <vector>
#define M 1000000
using namespace std;
struct Node{
char c;
int h;
Node *nxt;
vector<Node *> par;
};
Node *a[M+1];
int t;
void Init() {
a[t=0]=new Node();
}
void TypeLetter(char L) {
a[t]->nxt=a[t+1]=new Node();
a[t+1]->c=L;
a[t+1]->h=a[t]->h+1;
Node *p=a[t];
while(p){
a[t+1]->par.push_back(p);
p=p->par.size()>=a[t+1]->par.size() ? p->par[a[t+1]->par.size()-1] : NULL;
}
t++;
}
void UndoCommands(int U) {
a[t+1]=a[t-U];
t++;
}
char GetLetter(int P) {
Node *p=a[t];
P=p->h-P-1;
for(int i=0;P;i++){
if((1<<i)&P){
P-=(1<<i);
p=p->par[i];
}
}
return p->c;
}
# | 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... |