Submission #718143

#TimeUsernameProblemLanguageResultExecution timeMemory
718143mseebacherSplit the Attractions (IOI19_split)C++17
7 / 100
75 ms13984 KiB
#include "split.h"
#include <bits/stdc++.h>

using namespace std;


#define MAX_N (int) 1e5+5
vector<int> ad[MAX_N];
vector<int> res;
vector<bool> vis(MAX_N);

void dfs(int x,int a,int b,int c){
	if(vis[x]) return;
	vis[x] = 1;
	if(a > 0){
		res[x] = 1;
		--a;
	}else if(b > 0){
		res[x] = 2;
		--b;
	}else{
		res[x] = 3;
	}
	for(auto s: ad[x]){
		dfs(s,a,b,c);
	}
}

vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
	for(int i = 0;i<(int)p.size();i++){
		ad[p[i]].push_back(q[i]);
		ad[q[i]].push_back(p[i]);
	}
	res.assign(n,0);
	int start = 0;
	for(int i = 0;i<n;i++){
		if(ad[i].size() == 1){
			start = i;
			break;
		}
	}
	dfs(start,a,b,c);
	return res;
}
#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...