Submission #79036

#TimeUsernameProblemLanguageResultExecution timeMemory
79036dooweyMechanical Doll (IOI18_doll)C++14
2 / 100
88 ms20128 KiB
#include "doll.h"
#include <bits/stdc++.h>

using namespace std;

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

set<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].insert(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){
			n1 = *fow[i].begin();
			c.push_back(n1);
		}
		else{
			c.push_back(p);
			-- p;
			n1 = *fow[i].begin();
			auto it = fow[i].begin();
			it ++ ;
			n2 = *it;
			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...