Pagini recente » Cod sursa (job #58417) | Cod sursa (job #2803575) | Cod sursa (job #2835013) | Cod sursa (job #620472) | Cod sursa (job #1884063)
#include<cstdio>
#include<vector>
using namespace std;
vector<int>g[16001];
int n,val[1001],smax,sum[1001],i,viz[1001];
void dfs(int nod){
int i;
sum[nod]=val[nod];
viz[nod]=1;
for (i=0;i<g[i].size();i++)
if (viz[g[nod][i]]==0){
dfs(i);
if (sum[g[nod][i]]>0)
{sum[nod]=sum[nod]+sum[g[nod][i]];
if (smax<sum[nod])
smax=sum[nod];
}}}
int main()
{
freopen ("asmax.in","r",stdin);
freopen ("asmax.out","w",stdout);
scanf ("%d",&n);
for (i=1;i<=n;i++)
scanf ("%d",&val[i]);
for (i=1;i<=n-1;i++){
scanf("%d%d",&x,&y);
g[x].push_back(y);
g[y].push_back(x);
}
return 0;
}