Submission #384915

#TimeUsernameProblemLanguageResultExecution timeMemory
384915arman_ferdousMechanical Doll (IOI18_doll)C++17
16 / 100
168 ms12828 KiB
#include "doll.h" #include <bits/stdc++.h> using namespace std; #define sz(v) (int)v.size() const int M = 1e5+10; // triggers vector<int> g[M]; void create_circuit(int m, vector<int> a) { a.push_back(0); // to loop back int n = a.size(); for(int i = 0; i < n - 1; i++) { g[a[i]].push_back(a[i + 1]); } vector<int> C, X, Y; C.push_back(a[0]); // starting connection for(int i = 1; i <= m; i++) { assert(sz(g[i]) <= 4); if(g[i].empty()) { C.push_back(0); continue; } int newswitch = - sz(X) - 1; // C.push_back(newswitch); if(sz(g[i]) == 1) { C.push_back(g[i][0]); } else if(sz(g[i]) == 2) { C.push_back(newswitch); X.push_back(g[i][0]); Y.push_back(g[i][1]); } else if(sz(g[i]) == 3) { C.push_back(newswitch); int le = newswitch - 1, ri = newswitch - 2; X.push_back(le); Y.push_back(ri); X.push_back(g[i][0]); Y.push_back(newswitch); X.push_back(g[i][1]); Y.push_back(g[i][2]); } else { C.push_back(newswitch); int le = newswitch - 1, ri = newswitch - 2; X.push_back(le); Y.push_back(ri); X.push_back(g[i][0]); Y.push_back(g[i][2]); X.push_back(g[i][1]); Y.push_back(g[i][3]); } } answer(C, 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...