| # | Time | Username | Problem | Language | Result | Execution time | Memory | 
|---|---|---|---|---|---|---|---|
| 140229 | rajarshi_basu | Mechanical Doll (IOI18_doll) | C++14 | 1086 ms | 22736 KiB | 
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"
#define FOR(i,n) for(int i = 0;i<n;i++)
#define FORE(i,a,b) for(int i= a;i<=b;i++)
#define ll long long int
#define vi vector<int>
#define vv vector
#define pb push_back
#define ii pair<int,int>
using namespace std;
const int MAXN = 4e5;
int n,m;
vi out[MAXN];
int ctr = 1;
int x[MAXN];
int y[MAXN];
bool dummy[MAXN];
void ans1wer(vi a,vi b,vi c){
	for(auto e : a)cout << e << " ";cout << endl;
	FOR(i,b.size()){
		cout << b[i] << " " << c[i] << endl;
	}
}
int solve(vi nums){
	if(nums.size() == 1){
		
		return nums[0];
	}
	vi lft;vi rght;
	FOR(i,nums.size()){
		if(i%2 == 0){
			lft.pb(nums[i]);
		}else{
			rght.pb(nums[i]);
		}
	}
	int xx = solve(lft);
	int yy = solve(rght);
	x[ctr] = xx;
	y[ctr] = yy;
	ctr++;
	return -(ctr-1);
}
void create_circuit(int m,vi a){
	::m = m;
	n = a.size();
	FOR(i,n){
		if(i == n-1){
			out[a[i]].pb(0);
		}else{
			out[a[i]].pb(a[i+1]);
		}
	}
	out[0].pb(a[0]);
	vi outof(m+1);
	FOR(i,m+1){
		if(out[i].size() == 0){
			outof[i] = 0;
		}else{
			int kk = out[i].size();
			int lst = out[i].back();
			out[i].pop_back();
			vi ids;
			while((kk&(kk-1)) != 0){
				out[i].pb(-ctr);
				dummy[ctr] = 1;
				x[ctr] = -ctr;
				ids.pb(ctr);
				kk++;
				ctr++;
			}
			out[i].pb(lst);
			outof[i] = solve(out[i]);
			for(auto e: ids)y[e] = outof[i];
		}
	}
	vi xx;
	vi yy;
	FORE(i,1,ctr-1){
		xx.pb(x[i]);
		yy.pb(y[i]);
	}
	//ans1wer(outof,xx,yy);
	if((ctr-1) > 2*n)while(1);
	answer(outof,xx,yy);
	
}
int mai1n(){
	vi all;
	all.pb(1);
	all.pb(2);
	all.pb(1);
	all.pb(3);
	all.pb(1);
	all.pb(4);
	//all.pb(1);
	
	create_circuit(4,all);
	return 0;
}
Compilation message (stderr)
| # | 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... | ||||
