제출 #549043

#제출 시각아이디문제언어결과실행 시간메모리
549043nicholask친구 (IOI14_friend)C++14
100 / 100
24 ms3116 KiB
#include <bits/stdc++.h>
using namespace std;
int findSample(int n,int confidence[],int host[],int protocol[]){
    int dp[n][2];
    for (int i=0; i<n; i++){
        dp[i][0]=0;
        dp[i][1]=confidence[i];
    }
    for (int i=n-1; i; i--){
        if (protocol[i]==0){
            dp[host[i]][0]+=max(dp[i][0],dp[i][1]);
            dp[host[i]][1]+=dp[i][0];
        } else if (protocol[i]==1){
            dp[host[i]][1]=max(dp[host[i]][1]+max(dp[i][0],dp[i][1]),dp[host[i]][0]+dp[i][1]);
            dp[host[i]][0]+=dp[i][0];
        } else if (protocol[i]==2){
            dp[host[i]][1]=max(dp[host[i]][0]+dp[i][1],dp[host[i]][1]+dp[i][0]);
            dp[host[i]][0]+=dp[i][0];
        }
    }
    int ans=0;
    for (int i=0; i<n; i++){
        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...