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;
#define FORi(i,a,b) for(int i=a;i<b;i++)
#define FOR(i,n) FORi(i,0,n)
#define FOA(v,n) for(auto v : n)
#define len(a) ((int)a.size())
typedef vector<int> vi;
map<int, vi> points;
bool vis[100000];
vi X,Y,c;
void rec(int cur){
//cout<<"Recursing "<<cur<<endl;
vis[cur] = true;
if(len(points[cur])==4){
int orig = -len(X)-1;
c[cur] = -len(X)-1;
//cout<<"adding "<<-len(X)-1<<endl;
X.push_back(-len(X)-2);
Y.push_back(-len(X)-2);
X.push_back(points[cur][0]);
X.push_back(points[cur][1]);
Y.push_back(points[cur][2]);
Y.push_back(points[cur][3]);
}
else if(len(points[cur])==3){
int orig = -len(X)-1;
c[cur] = -len(X)-1;
//cout<<"adding "<<-len(X)-1<<endl;
X.push_back(-len(X)-2);
Y.push_back(-len(X)-2);
X.push_back(orig);
Y.push_back(points[cur][1]);
X.push_back(points[cur][0]);
Y.push_back(points[cur][2]);
}
else if(len(points[cur])==2){
c[cur] = -len(X)-1;
X.push_back(points[cur][0]);
Y.push_back(points[cur][1]);
}
else c[cur] = points[cur][0];
//cout<<"Recursing "<<cur<<endl;
FOA(v,points[cur]) if(!vis[v]) rec(v);
}
void create_circuit(int M, std::vector<int> A) {
c.resize(M+1);
A.push_back(0);
int prev=0;
points[0].push_back(A[0]);
FOR(i,len(A)-1){
points[A[i]].push_back(A[i+1]);
}
rec(0);
//FOR(i,M+1) cout<<i<<" "<<c[i]<<endl;
//FOR(i,len(X)) cout<<-i-1<<" "<<X[i]<<" "<<Y[i]<<endl;
answer(c, X, Y);
}
Compilation message (stderr)
doll.cpp: In function 'void rec(int)':
doll.cpp:20:7: warning: unused variable 'orig' [-Wunused-variable]
20 | int orig = -len(X)-1;
| ^~~~
doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:55:6: warning: unused variable 'prev' [-Wunused-variable]
55 | int prev=0;
| ^~~~
# | 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... |