Submission #1046438

#TimeUsernameProblemLanguageResultExecution timeMemory
1046438tolbiFriend (IOI14_friend)C++17
100 / 100
14 ms3492 KiB
#define tol(bi) (1LL<<((int)(bi)))
#include "friend.h"
#include <bits/stdc++.h>
using namespace std;
// Find out best sample
int findSample(int n,int confidence[],int host[],int protocol[]){
	int dp[n][2];
	for (int i = 0; i < n; ++i)
	{
		dp[i][0]=0;
		dp[i][1]=confidence[i];
	}
	for (int i = n-1; i >= 1; i--){
		int nd = host[i];
		if (protocol[i]==0){
			dp[nd][0]+=max(dp[i][1],dp[i][0]);
			dp[nd][1]+=dp[i][0];
		}
		else if (protocol[i]==1){
			dp[nd][1]=max(dp[nd][1]+max(dp[i][0],dp[i][1]),dp[nd][0]+dp[i][1]);
			dp[nd][0]+=dp[i][0];
		}
		else {
			dp[nd][1]=max(dp[nd][1]+dp[i][0],dp[nd][0]+dp[i][1]);
			dp[nd][0]+=dp[i][0];
		}
	}
	return max(dp[0][0],dp[0][1]);
}
#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...