Submission #739209

#TimeUsernameProblemLanguageResultExecution timeMemory
739209NeroZeinFriend (IOI14_friend)C++17
0 / 100
1 ms340 KiB
#include "friend.h"
#include <bits/stdc++.h>
using namespace std; 

const int N = 1003;

int n; 
int a[N]; 
int vis[N]; 
int dp[N][2]; 
vector<int> g[N]; 

int findSample(int n_, int confidence[],int host[],int protocol[]){
	n = n_; 
	for (int i = 0; i < n; ++i) {
		a[i] = confidence[i]; 
	}
	for (int i = 1; i < n; ++i) {
		if (protocol[i] == 1) {
			assert(host[i] < i); 
			g[host[i]].push_back(i);
			g[i].push_back(host[i]);
		}
	}
	int ans = 0; 
	function<void(int, int)> Dfs = [&](int v, int p) {
		int sum0 = 0, sum1 = 0; 
		vis[v] = true; 
		for (int u : g[v]) {
			if (vis[u]) {
				continue; 
			}
			Dfs(u, v);
			sum0 += dp[u][0];
			sum1 += dp[u][1]; 
		}
		dp[v][0] = sum1; 
		dp[v][1] = max(a[v] + sum0, sum1);
	};
	Dfs(0, 0);
	return dp[0][1];
}

Compilation message (stderr)

friend.cpp: In function 'int findSample(int, int*, int*, int*)':
friend.cpp:25:6: warning: unused variable 'ans' [-Wunused-variable]
   25 |  int ans = 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...