Pagini recente » Cod sursa (job #3172359) | Cod sursa (job #492103) | Cod sursa (job #214269) | Cod sursa (job #2716186) | Cod sursa (job #1579600)
#include <fstream>
#include <vector>
#include <string.h>
#include <algorithm>
#define nmax 16002
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int best[nmax],sol=-((1<<31)-1),viz[nmax];;
vector <int> a[nmax];
void df(int node)
{
viz[node]=1;
int nrvec=a[node].size();
for(int i=0;i<nrvec;i++){
if(!viz[a[node][i]]){
best[node]=max(best[node],best[node]+best[a[node][i]]);
df(a[node][i]);
}
}
sol=max(best[node],sol);
}
int main()
{
int n;
fin>>n;
for(int i=1;i<=n;i++)
fin>>best[i];
for(int i=1;i<n;i++)
{
int a1,b;
fin>>a1>>b;
a[a1].push_back(b);
a[b].push_back(a1);
}
df(1);
fout<<sol;
return 0;
}