제출 #1163332

#제출 시각아이디문제언어결과실행 시간메모리
1163332HappyCapybara크레이피쉬 글쓰는 기계 (IOI12_scrivener)C++20
100 / 100
506 ms90344 KiB
#include<bits/stdc++.h> using namespace std; int cur; vector<int> t; vector<vector<int>> p; vector<char> l; vector<int> s; void Init(){ p.resize(1, vector<int>(20, 0)); cur = 0; t.push_back(0); s.push_back(0); l.push_back('x'); } void TypeLetter(char L) { l.push_back(L); s.push_back(s[t[cur]]+1); p.push_back(vector<int>(20, 0)); p[l.size()-1][0] = t[cur]; for (int i=1; i<20; i++) p[l.size()-1][i] = p[p[l.size()-1][i-1]][i-1]; t.push_back(l.size()-1); cur++; } void UndoCommands(int U) { t.push_back(t[cur-U]); cur++; } char GetLetter(int P) { int x = s[t[cur]]-P-1; int ch = t[cur]; for (int i=19; i>=0; i--){ if ((1<<i) <= x){ ch = p[ch][i]; x -= (1<<i); } } return l[ch]; }
#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...