제출 #162052

#제출 시각아이디문제언어결과실행 시간메모리
162052oolimry친구 (IOI14_friend)C++14
35 / 100
3 ms428 KiB
#include "friend.h" #include <bits/stdc++.h> using namespace std; int findSample(int n, int confidence[], int host[], int protocol[]) { bool two = true; bool three = true; bool four = true; for(int i = 1;i < n;i++){ if(protocol[i] != 0) four = false; if(protocol[i] != 2) three = false; if(protocol[i] != 1) two = false; } if(four){ vector<int> child[n]; for(int i = 1;i < n;i++){ child[host[i]].push_back(i); } typedef pair<int,int> ii; ii dp[n]; fill(dp,dp+n,ii(0,0)); for(int u = n-1;u >= 0;u--){ dp[u] = ii(confidence[u],0); for(int v : child[u]){ dp[u].first += dp[v].second; dp[u].second += dp[v].first; } dp[u].first = max(dp[u].second,dp[u].first); } return dp[0].first; } else if(three){ long long s = 0; for(int i = 0;i < n;i++){ s = max((long long)confidence[i],s); } return s; } else if(two){ long long s = 0; for(int i = 0;i < n;i++){ s += confidence[i]; } return s; } return 0; }
#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...