Submission #363664

#TimeUsernameProblemLanguageResultExecution timeMemory
363664silverfishFriend (IOI14_friend)C++14
8 / 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[]){
	int ans = conf[0];
	dp[0][0] = 0;
	dp[0][1] = conf[0];

	for(int i = 1; i < n; ++i){

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

	return ans;
}
#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...