Pagini recente » Cod sursa (job #828659) | Cod sursa (job #1244234) | Cod sursa (job #2376643) | Istoria paginii runda/tsagrigoremoisil/clasament | Cod sursa (job #772106)
Cod sursa(job #772106)
#include<iostream>
#include<fstream>
#include<algorithm>
#include<bitset>
#include<vector>
using namespace std;
vector <int> v[16005];
bitset <16005> apar;
int a[16003],n,sol=-16000*1000,b[16005];
void adanc(int nod)
{
int i,cost=0;
apar[nod]=1;
for (i=0;i<v[nod].size();i++)
{
if (apar[v[nod][i]]==0)
{
adanc(v[nod][i]);
if (a[v[nod][i]]>0)
cost=cost+ a[v[nod][i]];
}
}
b[nod]=cost+a[nod];
sol=max(sol,b[nod]);
}
int main(void)
{
fstream f,g;
f.open("asmax.in",ios::in);
g.open("asmax.out",ios::out);
f>>n;
int i,x,y;
for (i=1;i<=n;i++)
f>>a[i];
for (i=1;i<n;i++)
{
f>>x>>y;
v[x].push_back(y);
v[y].push_back(x);
}
adanc(1);
g<<sol;
}