제출 #386851

#제출 시각아이디문제언어결과실행 시간메모리
386851iliccmarko크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++14
100 / 100
701 ms70092 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" #define INF 1000000000 #define LINF 10000000000000000LL #define pb push_back #define all(x) x.begin(), x.end() #define len(s) (int)s.size() #define test_case { int t; cin>>t; while(t--)solve(); } #define single_case solve(); #define line cerr<<"----------"<<endl; #define ios { ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); cerr.tie(NULL); } #define mod 1000000007LL const int N = 1e6 + 50; int up[N][21]; int cvor[N]; int ind; int ind2; char s[N]; int dub[N]; void Init() { } void TypeLetter(char l) { ind++; ind2++; cvor[ind2] = ind; s[ind] = l; up[ind][0] = cvor[ind2-1]; dub[ind] = dub[cvor[ind2-1]] + 1; for(int i = 1;i<=20;i++) up[ind][i] = up[up[ind][i-1]][i-1]; } void UndoCommands(int u) { ind2++; cvor[ind2] = cvor[ind2-1-u]; } char GetLetter(int p) { p++; int x = cvor[ind2]; for(int i = 20;i>=0;i--) { int w = up[x][i]; if(dub[w]<p) continue; x = w; } return s[x]; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...