Submission #434277

#TimeUsernameProblemLanguageResultExecution timeMemory
434277SuhaibSawalha1Mechanical Doll (IOI18_doll)C++17
0 / 100
1 ms204 KiB
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;

void create_circuit(int M, vector<int> A) {
  int N = A.size();
  vector<int> C(M + 1), X, Y, T(M + 1), E(M + 1);
  A.insert(A.begin(), 0);
  for (int i : A) {
    ++T[i];
  }
  A.push_back(0);
  for (int i = 0; i <= N; ++i) {
    --T[A[i]];
    if (T[i] == 0) {
      if (E[A[i]] == 0) {
        C[A[i]] = A[i + 1];
      }
      else {
        Y[E[A[i]] - 1] = A[i + 1];
      }
    }
    else {
      if (E[A[i]] == 0) {
        X.push_back(A[i + 1]);
        Y.push_back(0);
        E[A[i]] = X.size();
        C[A[i]] = -E[A[i]];
      }
      else {
        X.push_back(A[i + 1]);
        Y.push_back(0);
        Y[E[A[i]] - 1] = X.size();
        E[A[i]] = X.size();
      }
    }
  }
  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...