Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<algorithm>
- #include<stdlib.h>
- #include<stdio.h>
- #include<vector>
- using namespace std;
- int i,j,k,l,m,n,sum,a[1000005],x,y,f[1000005],ans,ans1;
- vector<int>v[1000005];
- int go(int u)
- {
- f[u]=1;
- int su=0;
- int ma=0;
- for(int i=0;i<v[u].size();i++)
- if(!f[v[u][i]])
- {
- int w=go(v[u][i]);
- ma=max(ma,w);
- su+=w;
- }
- ma=max(ma,sum-su-a[u]);
- if(ans>ma)ans=ma,ans1=u;
- return su+a[u];
- }
- main()
- {
- scanf("%d",&n);
- for(int i=0;i<n;i++)scanf("%d",&a[i]),sum+=a[i];
- for(int i=1;i<n;i++)
- {
- scanf("%d%d",&x,&y);
- v[x].push_back(y);
- v[y].push_back(x);
- }
- ans=int(2e9+1);
- go(0);
- cout<<ans1<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement