Submission #1216326

#TimeUsernameProblemLanguageResultExecution timeMemory
1216326moondarksideCrayfish scrivener (IOI12_scrivener)C++20
34 / 100
1096 ms2444 KiB
#include<bits/stdc++.h> using namespace std; struct character{ int depht; char letter; vector<int> Pointers; }; std::vector<int> Top; vector<struct character> Tree; void Init(){ return; } int getPointerAtDepht(int start,int depht){ if(Tree[start].depht==depht){ return start; } int fix=Tree[start].depht-depht; int i=-1; for(;fix>0;i++){ fix/=2; } return getPointerAtDepht(Tree[start].Pointers[i],depht); } void TypeLetter(char L){ auto temp=Tree; if(Top.size()==0 || Top[Top.size()-1]==-1){ Tree.push_back({0,L,vector<int>()}); } else{ int prevP=Top[Top.size()-1]; int depht=Tree[prevP].depht+1; vector<int> Np; int deltaDepht=1; while(depht-deltaDepht>=0){ Np.push_back(getPointerAtDepht(prevP,depht-deltaDepht)); deltaDepht*=2; } Tree.push_back({depht,L,Np}); } Top.push_back(Tree.size()-1); } void UndoCommands(int U){ auto temp=Tree; if(U==Top.size()){ Top.push_back(-1); } else{ Top.push_back(Top[Top.size()-1-U]); } auto temp2=Top; } char GetLetter(int P){ auto temp=Tree; int pt=getPointerAtDepht(Top[Top.size()-1],P); char tmp=Tree[pt].letter; return Tree[pt].letter; }
#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...