Submission #132620

#TimeUsernameProblemLanguageResultExecution timeMemory
132620dvdg6566Mechanical Doll (IOI18_doll)C++14
6 / 100
90 ms11064 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]);
    }
  }
  // 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...