Submission #584891

#TimeUsernameProblemLanguageResultExecution timeMemory
584891BelguteiFriend (IOI14_friend)C++17
16 / 100
1 ms340 KiB
#include "friend.h" #include <bits/stdc++.h> using namespace std; #define ll long long #define ff first #define ss second #define pb push_back #define mk make_pair const int N = 2005; vector<int> v; vector<int> edge[N]; int val[N]; bool visited[N]; int orson[N]; int oroogui[N]; void dfs(int k) { visited[k] = 1; for(auto x: edge[k]) { if(visited[x] == 1) continue; dfs(x); orson[k] += oroogui[x]; oroogui[k] += max(orson[x], oroogui[x]); } orson[k] += val[k]; } // Find out best sample int findSample(int n, int confidence[], int host[], int protocol[]){ int x=0, y =0 , z = 0; for(int i = 1; i < n; i ++) { if(protocol[i] == 0) x ++; if(protocol[i] == 1) y ++; if(protocol[i] == 2) z ++; } // subtask 2 my friends are your friends for(int i = 1; i < n; i ++) { // host[i] / protocol[i] for(auto x: edge[host[i]]) { edge[x].pb(i); edge[i].pb(x); } } int sum = 0; for(int i = 0; i < n; i ++) sum += confidence[i]; int mx = 0; for(int i = 0; i < n; i ++) mx = max(mx, confidence[i]); if(y == n - 1) return sum; if(z == n - 1) return mx; dfs(0); return max(orson[0], oroogui[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...