#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
void create_circuit(int m, vector<int> a) {
vector<int> c(m+1), x, y;
for(int i=1; i<=m; i++) c[i] = i;
c[0] = a[0];
int n = a.size();
a.push_back(0);
vector<int> mp[m+1];
for(int i=0; i<=n; i++) mp[a[i]].push_back(i);
int id = 1;
vector<bool> vis(m+1);
for(int i=1; i<=m; i++) {
if(vis[i]) continue;
if(mp[i].size() == 1) {
int p = mp[i][0];
c[i] = a[p+1];
} else if(mp[i].size() == 2) {
c[i] = -id;
int p1 = mp[i][0], p2 = mp[i][1];
x.push_back(a[p1+1]);
y.push_back(a[p2+1]);
id++;
} else if(mp[i].size() == 4) {
c[i] = -id;
x.push_back(-id-1);
y.push_back(-id-2);
x.push_back(a[ mp[i][0]+1 ]);
y.push_back(a[ mp[i][2]+1 ]);
x.push_back(a[ mp[i][1]+1 ]);
y.push_back(a[ mp[i][3]+1 ]);
id += 3;
} else if(mp[i].size() == 3) {
c[i] = -id;
x.push_back(-id-1);
y.push_back(-id-2);
x.push_back(a[ mp[i][0]+1 ]);
y.push_back(-id);
x.push_back(a[ mp[i][1]+1 ]);
y.push_back(a[ mp[i][2]+1 ]);
id += 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... |