Submission #1163331

#TimeUsernameProblemLanguageResultExecution timeMemory
1163331HappyCapybaraCrayfish scrivener (IOI12_scrivener)C++20
0 / 100
344 ms81508 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); } 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...