Pagini recente » Cod sursa (job #1785192) | Cod sursa (job #158659) | Cod sursa (job #398345) | Cod sursa (job #693092) | Cod sursa (job #793631)
Cod sursa(job #793631)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int v[16005];
int sarb[16005];
vector<int> list[16005];
bool viz[16005];
void parc(int nod)
{
viz[nod]=true;
sarb[nod]=v[nod];
for(int i=0;i<list[nod].size();i++)
{
int next_nod=list[nod][i];
if(viz[next_nod]==0)
{
parc(next_nod);
if(sarb[next_nod]>=0)
sarb[nod]+=sarb[next_nod];
}
}
return;
}
int main()
{
int n,a,b;
ifstream f;
f.open("asmax.in");
ofstream g;
g.open("asmax.out");
f>>n;
for(int i=1;i<=n;i++)
f>>v[i];
for(int i=1;i<n;i++)
{
f>>a>>b;
list[a].push_back(b);
list[b].push_back(a);
}
parc(1);
g<<*max_element(sarb+1,sarb+n+1);
return 0;
}