제출 #313541

#제출 시각아이디문제언어결과실행 시간메모리
313541tengiz05친구 (IOI14_friend)C++17
27 / 100
37 ms1528 KiB
#include "friend.h"
#include <bits/stdc++.h>
#define pb push_back
using namespace std;

int findSample(int n,int confidence[],int host[],int protocol[]){
	int ans=0;
	if(n <= 12){
		int mask = 0;
		vector<int> friends[13];
		for(int i=1;i<n;i++){
			if(protocol[i] == 0){
				friends[i].pb(host[i]);
				friends[host[i]].pb(i);
			}else {
				for(auto x : friends[host[i]]){
					friends[i].pb(x);
					friends[x].pb(i);
				}
				if(protocol[i] == 2){
					friends[i].pb(host[i]);
					friends[host[i]].pb(i);
				}
			}
		}
		mask = 1;
		while(mask < (1<<n)){
			int cost = 0;
			vector<bool> used(n);
			for(int i=0;i<n;i++){
				if(!((1<<i)&mask))continue;
				bool ok = true;
				for(auto x : friends[i])if(used[x])ok=false;
				if(ok)cost += confidence[i], used[i] = true;
			}
			ans = max(cost, ans);
			mask++;
		}
	}else if(protocol[1] == 1){
		for(int i=0;i<n;i++)ans += confidence[i];
	}else {
		for(int i=0;i<n;i++)ans = max(ans, confidence[i]);
	}
	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...