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 "bits/stdc++.h"
#include "doll.h"
using namespace std;
int S = -1;
vector<int> X,Y,C;
vector<int> dc(vector<int> lol){
    if(lol.size()==1)return lol;
    int sz = lol.size();
    int add = (sz+1)/2;
    vector<int> ret;
    for(int j = 0;j+add<sz;j++){
        ret.push_back(S--);
        X.push_back(lol[j]);
        Y.push_back(lol[j+add]);
    }
    if(sz%2){
        int x = sz-add;
        X.push_back(S);
        Y.push_back(lol[x]);
        ret.push_back(S--);
    }
    return dc(ret);
}
void create_circuit(int M, vector<int> A){
    vector<int> adj[M+1];
    int N = A.size();
    adj[0].push_back(A[0]);
    for(int i = 1;i<N;i++){
        adj[A[i-1]].push_back(A[i]);
    }
    adj[A[N-1]].push_back(0);
    for(int i = 0;i<=M;i++){
        if(adj[i].empty())adj[i].push_back(0);
        vector<int> x = dc(adj[i]);
        C.push_back(x[0]);
    }
    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... |