Submission #833518

#TimeUsernameProblemLanguageResultExecution timeMemory
833518ttamx친구 (IOI14_friend)C++14
100 / 100
20 ms3404 KiB
#include "friend.h"
#include<bits/stdc++.h>

using namespace std;

const int N=1e5+5;

int dp[N][2];

int findSample(int n,int c[],int h[],int p[]){
	for(int i=0;i<n;i++)dp[i][0]=c[i];
	for(int i=n-1;i>=1;i--){
		int u=h[i],v=i;
		if(p[i]==0){
			dp[u][0]=dp[u][0]+dp[v][1];
			dp[u][1]=dp[u][1]+max(dp[v][0],dp[v][1]);
		}else if(p[i]==1){
			dp[u][0]=max(dp[u][0]+max(dp[v][0],dp[v][1]),dp[u][1]+dp[v][0]);
			dp[u][1]=dp[u][1]+dp[v][1];
		}else{
			dp[u][0]=max(dp[u][0]+dp[v][1],dp[u][1]+dp[v][0]);
			dp[u][1]=dp[u][1]+dp[v][1];
		}
	}
	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...