Cod sursa(job #776646)

Utilizator ionut_blesneagIonut Blesneag ionut_blesneag Data 10 august 2012 09:22:02
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include<fstream>
#include<list>
#define inf -10000000
using namespace std;


int n,viz[16001],c[16001];
int i,j,maxim;

list<int> L[16001];

int depth(int z)
{int e,sum;
sum=c[z];
list<int>::iterator it;
for(it=L[z].begin(); it!=L[z].end(); it++)
 if(viz[*it]==0)
  {viz[*it]=1;
   e=depth(*it);
   if(e>0)
      sum+=e; }

if(maxim<sum)
   maxim=sum;   
    
return sum;                
}

int main()
{freopen("asmax.in","r",stdin);
freopen("asmax.out","w",stdout);
scanf("%d",&n);
maxim=inf;
for(i=1; i<=n; i++)
  scanf("%d",&c[i]);
int a,b;  
for(i=1; i<=n-1; i++)
  {scanf("%d %d",&a,&b);
   L[a].push_back(b);
   L[b].push_back(a);}  
viz[1]=1;
depth(1);
printf("%d",maxim);
return 0;}