#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
#define INF 1000000000
void create_circuit(int M, vector<int> A) {
int N = A.size();
A.push_back(0);
vector<vector<int>> edge(M + 1);
for (int k = 0; k < N; k++) {
edge[A[k]].push_back(A[k + 1]);
}
vector<int> C(M + 1), swt(M + 1, -1);
vector<int> X, Y;
C[0] = A[0];
for (int i = 1; i <= M; i++) {
if (edge[i].empty()) {}
else if (edge[i].size() == 1) {
C[i] = edge[i][0];
} else if (edge[i].size() == 2) {
C[i] = -X.size() - 1;
X.push_back(edge[i][0]), Y.push_back(edge[i][1]);
} else {
int a = -X.size() - 1, b = -X.size() - 2, c = -X.size() - 3;
if (edge[i].size() == 3) {
C[i] = a;
X.push_back(b), Y.push_back(c);
X.push_back(edge[i][0]), Y.push_back(a);
X.push_back(edge[i][1]), Y.push_back(edge[i][2]);
} else {
C[i] = a;
X.push_back(b), Y.push_back(c);
X.push_back(edge[i][0]), Y.push_back(edge[i][2]);
X.push_back(edge[i][1]), Y.push_back(edge[i][3]);
}
}
}
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... |