Submission #780261

#TimeUsernameProblemLanguageResultExecution timeMemory
780261Sohsoh84Friend (IOI14_friend)C++17
8 / 100
4 ms5136 KiB
#include "friend.h" #include <bits/stdc++.h> using namespace std; #define debug(x) cerr << #x << ": " << x << endl; const int MAXN = 1e5 + 10; int dp[MAXN], C[MAXN], col[MAXN], ans[2], n; vector<int> adj[MAXN]; inline void add(int u, int v) { adj[u].push_back(v); adj[v].push_back(u); } void dfs(int v) { ans[col[v] - 1] += C[v]; for (int u : adj[v]) { if (!col[u]) { col[u] = 3 - col[v]; dfs(u); } } } int findSample(int n, int C_[], int host[], int protocol[]){ for (int i = 0; i < n; i++) C[i] = C_[i]; for (int i = 1; i < n; i++) { if (protocol[i] % 2 == 0) add(host[i], i); if (protocol[i] > 0) { for (int u : adj[host[i]]) add(i, u); } } int fans = 0; for (int i = 0; i < n; i++) { if (!col[i]) { ans[0] = ans[1] = 0; col[i] = 1; dfs(i); fans += max(ans[0], ans[1]); } } return fans; }
#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...