Pagini recente » Cod sursa (job #2843946) | Cod sursa (job #594920) | Profil ioanaanca | Diferente pentru home intre reviziile 282 si 283 | Cod sursa (job #688768)
Cod sursa(job #688768)
#include <iostream>
#include <fstream>
#include <climits>
#define INF INT_MAX/2
using namespace std;
short a[16001][16001];
int n,v[16001],viz[16001],m;
ofstream fout("asmax.out");
void citire()
{
ifstream fin("asmax.in");
fin>>n;
for(int i=1;i<=n;++i)
fin>>v[i];
for(int i=1;i<n;++i)
{
int x,y;
fin>>x>>y;
a[x][++a[x][0]]=y;
a[y][++a[y][0]]=x;
}
}
void det(int vf)
{
viz[vf]=1;
for(int i=1;i<=a[vf][0];++i)
if(viz[a[vf][i]]==0)
{
det(a[vf][i]);
if(v[a[vf][i]]>0)
v[vf]+=v[a[vf][i]];
}
}
int main()
{
citire();
m=-INF;
det(1);
for(int i=1;i<=n;i++)
if(v[i]>m) m=v[i];
fout<<m;
return 0;
}