Submission #1019976

#TimeUsernameProblemLanguageResultExecution timeMemory
1019976nisanduuSplit the Attractions (IOI19_split)C++14
7 / 100
117 ms16212 KiB
#include "split.h"
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> find_split(int n, int a, int b, int c, vector<int> p, vector<int> q) {
	vector<int> res(n);
	int m = p.size();
	vector<vector<int>> adj(n+2);
	vector<int> calls(n+2);
	for(int i=0;i<m;i++){
	    adj[p[i]].push_back(q[i]);
	    adj[q[i]].push_back(p[i]);
	    calls[p[i]]++;
	    calls[q[i]]++;
	}
	vector<int> vis(n+2);
	int st = 0;
	for(int i=0;i<n;i++){
	    if(calls[i]==1){
	        st=i;
	        break;
	    }
	}
	queue<int> pq;
	pq.push(st);
	while(!pq.empty()){
	    int node = pq.front();
	    pq.pop();
	    vis[node]=1;
	    if(a>0){
	        res[node]=1;
	        a--;
	    }else if(b>0){
	        b--;
	        res[node]=2;
	    }else{
	        c--;
	        res[node]=3;
	    }
	    for(auto el:adj[node]){
	        if(!vis[el]){
	            pq.push(el);
	        }
	    }
	}
	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...