이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/*
______ _____ _______ _ _ _______ __ _ _____ _ _ _
|_____/ | | | |____/ |______ | \ | | | | | |
| \_ |_____| |_____ | \_ ______| | \_| |_____| |__|__|
. . . . . .
_\/ \/_ _\/ \/_ _\/ \/_
_\/\/_ _\/\/_ _\/\/_
_\_\_\/\/_/_/_ _\_\_\/\/_/_/_ _\_\_\/\/_/_/_
/ /_/\/\_\ \ / /_/\/\_\ \ / /_/\/\_\ \
_/\/\_ _/\/\_ _/\/\_
/\ /\ /\ /\ /\ /\
' ' ' ' ' '
*/
#pragma GCC optimize ("O3")
#pragma GCC target ("avx2")
#include <algorithm>
#include <array>
#include <bitset>
#include <cassert>
#include <climits>
#include <cstdint>
#include <cmath>
#include <chrono>
#include <complex>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <functional>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <memory>
#include <numeric>
#include <queue>
#include <random>
#include <set>
#include <stack>
#include <string>
#include <unordered_set>
#include <unordered_map>
#include <vector>
using namespace std;
/*using ll = long long;
#define pb push_back
#define all(x) begin(x), end(x)
#define sz(x) (int) (x).size()
#define f first
#define s second
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
*/
const int LOG=21;
const int MX=1e6+5;
struct no{
char c;
int pai[LOG];
int profundidade;
};
int tempo;
no vv[MX];
void imprimir(){
for(int i=0; i<tempo+1; i++){
cout<<"->"<<vv[i].c<<' '<<vv[i].pai[0]<<' ';
}
cout<<'\n';
}
void Init(){
tempo=0;
//raiz
vv[0].c='#';
for(int i=0; i<LOG; i++){
vv[0].pai[i]=0;
}
vv[0].profundidade=0;
//imprimir();
}
void TypeLetter(char L){
tempo++;
vv[tempo].c=L;
vv[tempo].pai[0]=tempo-1;
for(int i=1; i<LOG; i++){
vv[tempo].pai[i]=vv[vv[tempo].pai[i-1]].pai[i-1];
}
vv[tempo].profundidade=vv[tempo-1].profundidade+1;
//imprimir();
}
void UndoCommands(int U) {
tempo++;
vv[tempo]=vv[tempo-U-1];
//imprimir();
}
char GetLetter(int P) {
int x=vv[tempo].profundidade-P-1;
int pos=tempo;
for(int i=0; i<LOG; i++){
if(x&(1<<i)) pos=vv[pos].pai[i];
}
return vv[pos].c;
//imprimir();
}
# | 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... |