Pagini recente » Cod sursa (job #107737) | Cod sursa (job #2245646) | Cod sursa (job #1629776) | Cod sursa (job #685299) | Cod sursa (job #390837)
Cod sursa(job #390837)
# 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;
}