Cod sursa(job #390837)

Utilizator ProcopliucProcopliuc Adrian Procopliuc Data 4 februarie 2010 17:59:52
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
# include <fstream.h>
ifstream f ("asmax.in");
ofstream g ("asmax.out");
int c[20000],t[20000],v[20000],x,y,i,n,max=-100000000;


  struct nod
  {
	  int info;
	  nod *urm;
  }*a[20000],*p;
  
  
  void df (int x)
  {
	  nod *p;
	  v[x]=1;
	  p=a[x];
	  while (p)
	  {
		  if (v[p->info]==0)
		  {
			  t[p->info]=x;
			  df (p->info);
			  
			  if (c[p->info]>0)
				  c[t[p->info]]=c[t[p->info]]+c[p->info];
		  }
	  p=p->urm;
	  }
  }
  
		  
		  
		  
	  
  
  
  
int main ()
{
	f>>n;
	for (i=1;i<=n;i++)
		f>>c[i];
	for (i=1;i<n;i++)
	{
		f>>x>>y;
		p=new nod;
		p->info=x;
		p->urm=a[y];
		a[y]=p;
		p=new nod;
		p->info=y;
		p->urm=a[x];
		a[x]=p;
	}
	
	df (1);
	for (i=1;i<=n;i++)
		if (c[i]>max)
			max=c[i];
		
		g<<max;
		return 0;
}