Submission #132626

#TimeUsernameProblemLanguageResultExecution timeMemory
132626dvdg6566자동 인형 (IOI18_doll)C++14
16 / 100
113 ms11676 KiB
#include "doll.h" #include<bits/stdc++.h> using namespace std; typedef vector<int> vi; #define pb emplace_back #define SZ(x) (int)x.size() inline int MSB(unsigned int x){ return 32-__builtin_clz(x); } vi occ[100100]; void create_circuit(int M, std::vector<int> A) { int N = A.size(); std::vector<int> C(M + 1,-1); vi X,Y; occ[0].pb(A[0]); for (int i=0;i<N-1;++i){ occ[A[i]].pb(A[i+1]); } occ[A[N-1]].pb(0); int c = -1; for (int i=0;i<=M;++i){ if (SZ(occ[i]) == 0){ C[i]=0; }else if(SZ(occ[i]) == 1){ C[i]=occ[i][0]; }else if (SZ(occ[i]) == 2){ C[i] = c; --c; X.pb(occ[i][0]); Y.pb(occ[i][1]); }else if (SZ(occ[i]) == 3){ int a = c; C[i] = a; c -= 3; X.pb(a-1); Y.pb(a-2); X.pb(occ[i][0]); Y.pb(a); X.pb(occ[i][1]); Y.pb(occ[i][2]); }else if (SZ(occ[i]) == 4){ int a = c; C[i] = a; c -= 3; X.pb(a-1); Y.pb(a-2); X.pb(occ[i][0]); Y.pb(occ[i][2]); X.pb(occ[i][1]); Y.pb(occ[i][3]); } } // for (int i=0;i<=M;++i)cout<<C[i]<<' ';cout<<'\n'; 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...