Submission #363667

#TimeUsernameProblemLanguageResultExecution timeMemory
363667silverfishFriend (IOI14_friend)C++14
16 / 100
1 ms512 KiB
#include "friend.h"
#include <bits/stdc++.h>
using namespace std;
 
const int N = 1e5+1;
 
int dp[N][2];
 
int findSample(int n, int conf[],int host[],int protocol[]){

	for(int i = 0; i < n; ++i) dp[i][1] = conf[i];
	for(int i = n-1; i >= 1; --i){

		if(protocol[i] == 0){
			dp[host[i]][0] = max({dp[i][0], dp[i][1], dp[host[i]][0]});
			dp[host[i]][1] += dp[i][0];
		}else if(protocol[i] == 1){
			dp[host[i]][0] += dp[i][1];
			dp[host[i]][1] += max(dp[i][1], dp[i][0]);
		}else if(protocol[i] == 2){
			dp[host[i]][0] = max({dp[i][0], dp[i][1], dp[host[i]][0]});
			dp[host[i]][1] += dp[i][1] - conf[i];
		}
	}

	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...