Advertisement
Guest User

Untitled

a guest
Jul 27th, 2015
216
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.69 KB | None | 0 0
  1. #include<iostream>
  2. #include<algorithm>
  3. #include<stdlib.h>
  4. #include<stdio.h>
  5. #include<vector>
  6. using namespace std;
  7. int i,j,k,l,m,n,sum,a[1000005],x,y,f[1000005],ans,ans1;
  8. vector<int>v[1000005];
  9. int go(int u)
  10. {
  11.     f[u]=1;
  12.    
  13.    
  14.     int su=0;
  15.     int ma=0;
  16.     for(int i=0;i<v[u].size();i++)
  17.        if(!f[v[u][i]])
  18.        {
  19.            int w=go(v[u][i]);
  20.            ma=max(ma,w);
  21.            su+=w;
  22.        }
  23.     ma=max(ma,sum-su-a[u]);
  24.     if(ans>ma)ans=ma,ans1=u;
  25.     return su+a[u];
  26. }
  27. main()
  28. {
  29.     scanf("%d",&n);
  30.    
  31.     for(int i=0;i<n;i++)scanf("%d",&a[i]),sum+=a[i];
  32.    
  33.    
  34.     for(int i=1;i<n;i++)
  35.     {
  36.         scanf("%d%d",&x,&y);
  37.         v[x].push_back(y);
  38.         v[y].push_back(x);
  39.     }  
  40.     ans=int(2e9+1);
  41.     go(0);
  42.    
  43.     cout<<ans1<<endl;
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement