Submission #79037

#TimeUsernameProblemLanguageResultExecution timeMemory
79037dooweyMechanical Doll (IOI18_doll)C++14
6 / 100
125 ms14460 KiB
#include "doll.h"
#include <bits/stdc++.h>

using namespace std;

const int N = (int)2e5 + 912;

vector<int> fow[N];

void create_circuit(int m, vector<int> A) {	
	vector<int> c;
	vector<int> xi, yi;
	A.push_back(0);
	int nx, cr;
	for(int i = 0; i + 1 < (int)A.size(); i ++ ){
		nx = A[i + 1];
		cr = A[i];
		fow[cr].push_back(nx);
	}
	int n1, n2;
	int p = -1;
	for(int i = 0; i <= m; i ++ ){
		if(fow[i].size() == 0){
			if(i != 0)c.push_back(0);
			else if(i == 0)c.push_back(A[0]);
		}
		else if(fow[i].size() == 1 or (fow[i].size() == 2 and fow[i][0] == fow[i][1])){
			n1 = fow[i][0];
			c.push_back(n1);
		}
		else{
			c.push_back(p);
			-- p;
			n1 = fow[i][0];
			n2 = fow[i][1];
			xi.push_back(n1);
			yi.push_back(n2);
		}
	}
	answer(c, xi, yi);
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...