Submission #1313227

#TimeUsernameProblemLanguageResultExecution timeMemory
1313227TroySerSplit the Attractions (IOI19_split)C++20
0 / 100
38 ms8740 KiB
#include <bits/stdc++.h>
#include "split.h"

using namespace std;
using ll = int;

vector<int> find_split(int N, int a, int b, int c, vector<int> p, vector<int> q) {
	
	// Subtask 1: line graph

	ll M = p.size();

	vector<vector<ll> > adjList(N);
	for (ll i = 0; i < M; i++) {
		adjList[p[i]].push_back(q[i]);
		adjList[q[i]].push_back(p[i]);
	}

	ll startNode = 0;
	for (ll i = 0; i < N; i++) {
		if (adjList[i].size() == 1) {
			startNode = i;
			break;
		}
	}

	ll currNode = startNode;
	ll ind = 0;

	vector<ll> response(N, 0);

	while (ind < N) {

		if (ind < a) response[ind] = 1;
		else if (a <= ind && ind < a + b) response[ind] = 2;
		else response[ind] = 3;

		for (ll l: adjList[currNode]) {
			if (l != currNode) {
				currNode = l;
				break;
			}
		}

		ind++;

	}

	return response;

}
#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...