제출 #1155308

#제출 시각아이디문제언어결과실행 시간메모리
1155308alexdd친구 (IOI14_friend)C++20
0 / 100
2 ms2884 KiB
#include "friend.h" #include<bits/stdc++.h> using namespace std; int n; int a[100005]; int parent[100005]; vector<int> con[100005]; int adevarat[100005]; int dp[100005][2]; void dfs(int nod) { dp[nod][1] = a[nod]; dp[nod][0] = 0; for(int adj:con[nod]) { dfs(adj); dp[nod][1] += dp[adj][0]; dp[nod][0] += max(dp[adj][1], dp[adj][1]); } } int findSample(int cit_n, int confidence[], int host[], int protocol[]) { n = cit_n; for(int i=0;i<n;i++) { a[i] = confidence[i]; parent[i] = -1; } for(int i=1;i<n;i++) { if(protocol[i]==0) { parent[i] = adevarat[host[i]]; con[parent[i]].push_back(i); adevarat[i] = i; } else if(protocol[i]==1) { adevarat[i] = host[i]; a[adevarat[i]] += a[i]; } else { } } int sum=0; for(int i=0;i<n;i++) { if(adevarat[i]==i && parent[i]==-1) { dfs(i); sum += max(dp[i][0], dp[i][1]); } } return sum; }
#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...