Submission #413738

#TimeUsernameProblemLanguageResultExecution timeMemory
413738Antekb친구 (IOI14_friend)C++14
11 / 100
1081 ms65540 KiB
#include "friend.h" #include<bits/stdc++.h> using namespace std; typedef long long ll; // Find out best sample const int N=1e5+5; int dp[N][2], w[N]; vector<int> E[N]; void dfs(int v){ for(int u:E[v]){ dfs(u); dp[v][0]+=dp[u][1]; dp[v][1]+=dp[u][0]; } dp[v][1]+=w[v]; if(dp[v][1]<dp[v][0])dp[v][1]=dp[v][0]; } int findSample(int n,int confidence[],int host[],int protocol[]){ for(int i=0; i<n; i++){ w[i]=confidence[i]; } for(int i=1; i<n; i++){ if(protocol[i]==0){ E[host[i]].push_back(i); E[i].push_back(host[i]); } else{ for(int j:E[host[i]]){ E[i].push_back(j); E[j].push_back(i); } if(protocol[i]==2){ E[host[i]].push_back(i); E[i].push_back(host[i]); } } } int ans=0; for(int i=0; i<(1<<n); i++){ int k=0; bool b=1; for(int j=0; j<n; j++){ if(i&(1<<j)){ k+=w[j]; for(int l:E[j])if(i&(1<<l))b=0; } } if(b)ans=max(ans, k); } 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...