제출 #406563

#제출 시각아이디문제언어결과실행 시간메모리
406563benkTraffic (IOI10_traffic)C++14
50 / 100
531 ms141264 KiB
#include "traffic.h" #include <bits/stdc++.h> using namespace std; #define pb push_back const int N = 1e6 + 10; int tot; vector<int> adj[N], ch(N), peop(N), curr(N); vector<bool> vis(N); void dfs(int x) { vis[x] = 1; for (auto it : adj[x]) { if (vis[it]) continue; dfs(it); ch[x] += ch[it]; peop[x] = max(peop[x], ch[x]); // max of all ch } ch[x] += curr[x]; peop[x] = max(peop[x], tot - ch[x]); // either from par or ch } int LocateCentre(int n, int p[], int s[], int d[]) { for (int i = 0; i < n - 1; i++) { adj[s[i]].pb(d[i]); adj[d[i]].pb(s[i]); } for (int i = 0; i < n; i++) { tot += p[i]; curr[i] = p[i]; } dfs(0); int ans = INT_MAX, res = -1; for (int i = 0; i < n; i++) { if (ans > peop[i]) { ans = peop[i]; res = i; } } return res; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...