Submission #1264214

#TimeUsernameProblemLanguageResultExecution timeMemory
1264214DeltaStructCrayfish scrivener (IOI12_scrivener)C++20
100 / 100
860 ms117640 KiB
#include <bits/stdc++.h> using namespace std; vector S(1,vector<int>(20,0)); vector<char> C(1,'@'); void Init(){} void TypeLetter(char c){ S.emplace_back(20,S.size()-1); if (C[S.back()[0]]=='_') S.back()[0] = S[S.back()[0]][0]; for (int i(1);i < 20;++i) S.back()[i] = S[S.back()[i-1]][i-1]; C.emplace_back(c); } void UndoCommands(int x){ S.emplace_back(20,S.size()-1-x); if (C[S.back()[0]]=='_') S.back()[0] = S[S.back()[0]][0]; for (int i(1);i < 20;++i) S.back()[i] = S[S.back()[i-1]][i-1]; C.emplace_back('_'); } char GetLetter(int x){ int n = 0,m = S.size()-1; for (int i(19);i > -1;--i) if (C[S[m][i]]!='@') m = S[m][i],n |= 1<<i; m = S.size()-1; for (int i(0);i < 20;++i) if (((n-x)>>i)&1) m = S[m][i]; return C[m]; }
#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...