Pagini recente » Cod sursa (job #62697) | Cod sursa (job #2710804) | Cod sursa (job #2584434) | Cod sursa (job #465476) | Cod sursa (job #1684822)
#include<cstdio>
#include<vector>
using namespace std;
int val[16010],x,y,ma;
bool viz[16010];
vector<int> v[16010];
int n;
int solve(int nod)
{
viz[nod]=1;
int next;
while(!v[nod].empty())
{
next=v[nod].back();
if(viz[next]==0)
{
val[nod]+=solve(next);
}
v[nod].pop_back();
}
if(val[nod]>ma)
{
ma=val[nod];
}
if(val[nod]>0)
{
return val[nod];
}
return 0;
}
int main()
{
freopen("asmax.in","r",stdin);
freopen("asmax.out","w",stdout);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&val[i]);
}
for(int i=1;i<n;i++)
{
scanf("%d %d",&x,&y);
v[x].push_back(y);
v[y].push_back(x);
}
solve(1);
printf("%d",ma);
}