Submission #1221975

#TimeUsernameProblemLanguageResultExecution timeMemory
1221975madamadam3자동 인형 (IOI18_doll)C++20
2 / 100
25 ms5192 KiB
#include "doll.h"
#include <bits/stdc++.h>

using namespace std;

#define FOR(i, a, b) for (int i = a; i < b; i++)
#define all(x) (x).begin(), (x).end()
#define sz(x) (x).size()

typedef long long ll;
using vi = vector<int>;

void simulate(int m, vi &C, vi &X, vi &Y) {
  int cur = 0, done = 0;
  vi state(X.size(), 0);

  while (true) {
    cout << cur << " ";
    if (cur == 0 && done > 0) break;

    if (cur >= 0) {
      cur = C[cur];
    } else {
      state[(-cur) - 1] = 1 - state[(-cur) - 1];

      if (state[(-cur) - 1] == 1) {
        cur = X[(-cur) - 1];
      } else {
        cur = Y[(-cur) - 1];
      }
    }

    done++;
  }
}

void create_circuit(int m, vi A) {
  int n = sz(A);
  vi C(m + 1);
  vi X(n), Y(n);

  C[0] = A[0];
  
  FOR(i, 0, n) {
    C[A[i]] = X[i] = -(i+1);
    if (i == n - 1) Y[i] = 0;
    else Y[i] = A[i+1];
  }

  // simulate(m, C, X, Y);
  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...