Pagini recente » Cod sursa (job #1024420) | Cod sursa (job #1388751) | Cod sursa (job #529856) | Cod sursa (job #1587549) | Cod sursa (job #1295066)
#include<iostream>
using namespace std;
#include<stdio.h>
FILE *f,*g;
int suma=-9999999999,n,i,j,val[16002],s[16002],m,n1;
struct nod
{
int nd;
nod *urm;
};
nod *l[16002],*p;
int df(int q,int w)
{
s[q]=1;
while(l[q])
{
if(s[l[q]->nd]==0)
{
df(l[q]->nd,q);
}
l[q]=l[q]->urm;
}
if(w!=q)
{
if(val[q]+val[w]>val[w])
val[w]=val[q]+val[w];
}
}
int main()
{
f=fopen("asmax.in","r");
g=fopen("asmax.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{
fscanf(f,"%d",&val[i]);
}
while(!feof(f))
{
fscanf(f,"%d %d",&i,&j);
p=new nod;
p->urm=l[i];
p->nd=j;
l[i]=p;
p=new nod;
p->urm=l[j];
p->nd=i;
l[j]=p;
}
df(1,1);
for(i=1;i<=n;i++)
if(val[i]>suma)
suma=val[i];
fprintf(g,"%d",suma);
}