Pagini recente » Cod sursa (job #2639617) | Cod sursa (job #859585) | Cod sursa (job #2469115) | Cod sursa (job #1713892) | Cod sursa (job #957340)
Cod sursa(job #957340)
#include<fstream>
#include<vector>
using namespace std;
vector <int> a[16001];
int b[16001],d[16001],i,mx,x,y,n;
bool v[16001];
void df(int x)
{
int i;
v[x]=1;
d[x]=b[x];
for (i=0;i<a[x].size();i++)
if (v[a[x][i]]==0)
{
df(a[x][i]);
if (d[a[x][i]]>0)
d[x]=d[x]+d[a[x][i]];
}
if (d[x]>mx)
mx=d[x];
}
int main()
{
ifstream f("asmax.in");
ofstream g("asmax.out");
f >> n;
for (i=1;i<=n;i++)
f >> b[i];
for (i=1;i<n;i++)
{
f >> x >> y;
a[x].push_back(y);
a[y].push_back(x);
}
df(1);
g << mx;
return 0;
}