Submission #442561

#TimeUsernameProblemLanguageResultExecution timeMemory
442561vanicMechanical Doll (IOI18_doll)C++14
6 / 100
105 ms14272 KiB
#include "doll.h" #include <iostream> #include <cmath> #include <algorithm> #include <vector> using namespace std; const int maxn=1e5+5; vector < int > sus[maxn]; vector < int > vez; vector < int > x, y; int m, n; void rijesi(){ int br; int pos=-1; // int raz; for(int i=1; i<=m; i++){ // cout << "usao" << endl; if(sus[i].empty()){ vez.push_back(0); } else if(sus[i].size()==1){ vez.push_back(sus[i][0]); } else{ vez.push_back(pos); br=1; while((int)sus[i].size()>br){ br*=2; } for(int j=1; j<br/2; j++){ x.push_back(pos-j*2); y.push_back(pos-j*2-1); } // raz=br-sus[i].size(); for(int j=br/2; j<br; j++){ if((j-br/2)*2<(int)sus[i].size()){ x.push_back(sus[i][(j-br/2)*2]); } else{ x.push_back(pos); } if((j-br/2)*2+1<(int)sus[i].size()){ y.push_back(sus[i][(j-br/2)*2+1]); } else{ y.push_back(pos); } } pos-=br-1; } } } void create_circuit(int M, vector <int> a){ m=M; n=a.size(); vez.push_back(a[0]); for(int i=0; i<n-1; i++){ sus[a[i]].push_back(a[i+1]); } sus[a[n-1]].push_back(0); rijesi(); /* for(int i=0; i<(int)vez.size(); i++){ cout << vez[i] << ' '; }*/ answer(vez, x, y); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...