Submission #1069034

#TimeUsernameProblemLanguageResultExecution timeMemory
1069034WaelFriend (IOI14_friend)C++14
8 / 100
1 ms604 KiB
#include "friend.h"
#include<bits/stdc++.h>
using namespace std;
// Find out best sample
int findSample(int n,int confidence[],int host[],int protocol[]){
    vector<vector<int>> dp(n, vector<int>(2));
    for(int i=n-1;i>=0;i--)
    {
        dp[i][1]+=confidence[i];
        if(i==0)break;
        int par=host[i-1];
        if(protocol[i]==0)
        {
            dp[par][0]+=max(dp[i][0],dp[i][1]);
            dp[par][1]+=dp[i][0];
        }
        if(protocol[i]==1)
        {
            dp[par][0]=max(dp[par][0]+dp[i][0],dp[par][1]-confidence[par]
                           +max(dp[i][0],dp[i][1]));

            dp[par][1]+=max(dp[i][0],dp[i][1]);
        }
        if(protocol[i]==2)
        {
            dp[par][0]=max(dp[par][0]+dp[i][0],dp[par][1]
                           -confidence[par]+max(dp[i][0],dp[i][1]));
            dp[par][1]+=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...