Submission #101678

#TimeUsernameProblemLanguageResultExecution timeMemory
101678loliconMechanical Doll (IOI18_doll)C++14
2 / 100
91 ms9152 KiB
#include "doll.h" #include<algorithm> using namespace std; int magic(vector<int> &X,vector<int> &Y,vector<int> &G,int L,int R){ if(L == R){ return G[L]; } int mid = (L+R)>>1; X.push_back(magic(X,Y,G,L,mid)); Y.push_back(magic(X,Y,G,mid+1,R)); return -X.size(); } void create_circuit(int M, std::vector<int> A) { int N = A.size(); vector<int> C(M + 1); vector<int> X, Y; vector<int> G[M+1]; vector<int> next(M+1), cnt(M+1,0); for(int i=0;i<N-1;i++){ cnt[A[i]]++; G[A[i]].push_back(A[i+1]); } C[0] = A[0]; for(int i=0;i<N-1;i++){ if(cnt[A[i]] == 1){ C[A[i]] = A[i+1]; } else { C[A[i]] = magic(X, Y, G[A[i]], 0, G[A[i]].size()-1); } } C[A[N-1]] = 0; 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...