Submission #1276149

#TimeUsernameProblemLanguageResultExecution timeMemory
1276149KindaGoodGamesFriend (IOI14_friend)C++17
8 / 100
1 ms580 KiB
#include "friend.h"
#include<bits/stdc++.h>

using namespace std;

struct UnionFind{
	vector<int> par;

	UnionFind(int n){
		par.resize(n);
		iota(par.begin(),par.end(),0);
	}

	int find(int i){
		if(par[i] == i) return i;
		return par[i] = find(par[i]);
	}

	void unite(int i, int j){
		i = find(i);
		j = find(j);
		par[i] = j;
	}
};

// Find out best sample
int findSample(int n,int confidence[],int host[],int protocol[]){
	int ans=0;

	UnionFind uf(n);
	for(int i = 1; i< n; i++){
		uf.unite(i, host[i]);
	}

	map<int,int> best;
	for(int i = 0; i <n; i++){
		best[uf.find(i)] = max(best[uf.find(i)], confidence[i]);
	}

	for(auto [ind, v] : best){
		ans += v;
	}
	return ans;
}
#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...