이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "traffic.h"
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define pii pair <int, int>
#define pb push_back
#define F first
#define S second
#define ll long long
#define io ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define M_PI 3.14159265358979323846
const int N = 1000005;
const int mod = 1e9 + 7;
vector<int> a[N];
int w[N], dis[N], al, ans = INT_MAX, res;
void DFS(int node, int par){
dis[node] = w[node];
for(int i : a[node]){
if(i == par) continue;
DFS(i, node);
dis[node] += dis[i];
}
}
void get(int node, int par){
int cur = al - dis[node];
for(int i : a[node]){
if(i == par) continue;
cur = max(cur, dis[i]);
get(i, node);
}
if(cur < ans) {
ans = cur;
res = node;
}
}
int LocateCentre(int n, int r[], int to[], int from[]) {
for(int i = 0; i < n - 1; i++){
a[to[i]].pb(from[i]);
a[from[i]].pb(to[i]);
}
for(int i = 0; i < n; i++){
dis[i] = -1;
w[i] = r[i];
}
DFS(0, 0);
al = dis[0];
get(0, 0);
return res;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |