#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++;
}
cout << "\n";
}
void create_circuit(int m, vi A) {
int n = sz(A);
vi C(m + 1, 0);
vi X(n), Y(n);
C[0] = A[0];
vi cnt(m+1, 0); FOR(i, 0, n) cnt[A[i]]++;
int cs = -1;
FOR(i, 0, n) {
int cv = (-cs) -1;
if (C[A[i]] == 0) {
X[cv] = C[A[i]] = cs;
Y[cv] = i == n-1 ? 0 : A[i+1];
} else {
int prev = (-C[A[i]]) - 1;
X[prev] = Y[prev];
Y[prev] = X[cv] = cs;
Y[cv] = i == n - 1 ? 0 : A[i+1];
}
cs--;
}
// simulate(m, C, X, Y);
answer(C, X, Y);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |