This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "doll.h"
#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 1;
int sw;
vector<int> nxt[N];
int x[N],y[N];
void create_circuit(int m,vector<int> a)
{
int n = a.size();
vector<int> c(m+1);
a.push_back(0);
for(int i = 0;i < n;i++) nxt[a[i]].push_back(a[i+1]);
c[0] = a[0];
for(int i = 1;i <= m;i++) if(!nxt[i].empty())
{
if(nxt[i].size()==1) c[i] = nxt[i][0];
else if(nxt[i].size()==2)
{
c[i] = ++sw;
c[i] = -c[i];
x[sw] = nxt[i][0];
y[sw] = nxt[i][1];
}
else if(nxt[i].size()==3)
{
int s1 = ++sw,s2 = ++sw,s3 = ++sw;
c[i] = -s1;
x[s1] = -s2;
y[s1] = -s3;
x[s2] = -s1;
y[s2] = nxt[i][1];
x[s3] = nxt[i][0];
y[s3] = nxt[i][2];
}
else
{
int s1 = ++sw,s2 = ++sw,s3 = ++sw;
c[i] = -s1;
x[s1] = -s2;
y[s1] = -s3;
x[s2] = nxt[i][0];
y[s2] = nxt[i][2];
x[s3] = nxt[i][1];
y[s3] = nxt[i][3];
}
}
vector<int> sx,sy;
for(int i = 1;i <= sw;i++) sx.push_back(x[i]),sy.push_back(y[i]);
answer(c,sx,sy);
}
# | 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... |