Submission #7582

#TimeUsernameProblemLanguageResultExecution timeMemory
7582jihoonFriend (IOI14_friend)C++98
100 / 100
40 ms3040 KiB
#include "friend.h"
#include<algorithm>

using namespace std;
int dp[100001][2];
int findSample(int n, int confidence[], int host[], int protocol[]){
    int i;
    for(i=0;i<n;i++){
        dp[i][0]=confidence[i];
    }
    for(i=n-1;i>=1;i--){
        if(protocol[i]==0){
            dp[host[i]][0]+=dp[i][1];
            dp[host[i]][1]=max(dp[host[i]][1]+dp[i][1],dp[host[i]][1]+dp[i][0]);
        }else if(protocol[i]==1){
            dp[host[i]][0]=max(dp[host[i]][0]+dp[i][0],max(dp[host[i]][0]+dp[i][1],dp[host[i]][1]+dp[i][0]));
            dp[host[i]][1]+=dp[i][1];
        }else{
            dp[host[i]][0]=max(dp[host[i]][0]+dp[i][1],dp[host[i]][1]+dp[i][0]);
            dp[host[i]][1]+=dp[i][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...