Submission #584878

#TimeUsernameProblemLanguageResultExecution timeMemory
584878Belgutei친구 (IOI14_friend)C++17
19 / 100
2 ms468 KiB
#include "friend.h"
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define ff first
#define ss second
#define pb push_back
#define mk make_pair

const int N = 2005;

vector<int> v;
vector<int> edge[N];
int val[N];
bool visited[N];
int orson[N];
int oroogui[N];

void dfs(int k) {
	visited[k] = 1;
	for(auto x: edge[k]) {
		if(visited[x] == 1) continue;
		dfs(x);
		orson[k] += oroogui[x];
		oroogui[k] += max(orson[x], oroogui[x]);
	}
	orson[k] += val[k];
}

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

	// subtask 4 I am your friend
	for(int i = 1; i < n; i ++) {
		// host[i] / protocol[i]
		edge[i].pb(host[i]);
		edge[host[i]].pb(i);
	}
	for(int i = 0; i < n; i ++) val[i] = confidence[i];
 	dfs(0);
	return max(orson[0], oroogui[0]);	
}
#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...