# | TimeUTC-0 | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
710478 | aggrovector | Race (IOI11_race) | C++17 | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
int n,k,i,j,x,y,w,used[200005],vi[200005],fa[200005],subtree[200005],d[200005],d1[200005];
long long ans;
vector<pair<int,int>> v[200005];
vector<int> centroids;
unordered_map<int,int> cnt,cnt1;
bool flag,iscentroid;
const long long INF=1e15;
void dfs(int x, int f) {//subtree size
vi[x]=1;
fa[x]=f;
for (int i=0;i<v[x].size();i++) {
if (vi[v[x][i].first]==0 && used[v[x][i].first]==0) {
d1[v[x][i].first]=d1[x]+1;
dfs(v[x][i].first,f);
subtree[x]+=subtree[v[x][i].first];
}
}
subtree[x]++;
}
void dfs1(int x) {//distance by length and number of nodes
vi[x]=1;
for (int i=0;i<v[x].size();i++) {
if (vi[v[x][i].first]==0 && used[v[x][i].first]==0) {
d[v[x][i].first]=d[x]+v[x][i].second;
d1[v[x][i].first]=d1[x]+1;
dfs1(v[x][i].first);