제출 #132644

#제출 시각아이디문제언어결과실행 시간메모리
132644dvdg6566자동 인형 (IOI18_doll)C++14
6 / 100
102 ms11048 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); } int c=-1; vi C,X,Y; vi occ[100100]; void fill(int x, int occnum, int skip, int startind){ if (x == 2){ X.pb(occ[occnum][startind]); Y.pb(occ[occnum][skip + startind]); return; } } void create_circuit(int M, std::vector<int> A) { int N = A.size(); C.resize(M+1,0); 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); for (int i=0;i<=M;++i){ if (SZ(occ[i]) == 0)continue; if (SZ(occ[i]) == 1){ C[i] = occ[i][0]; }else{ C[i] = c--; fill(SZ(occ[i]), i, 1, 0); } } // 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...