Pagini recente » Cod sursa (job #426676) | Cod sursa (job #2307199) | Cod sursa (job #2755730) | Cod sursa (job #2028821) | Cod sursa (job #713832)
Cod sursa(job #713832)
#include <vector>
#include <fstream>
#include <bitset>
#define pb push_back
using namespace std;
bitset<16005> viz;
vector<int> v[16005];
int n,a[16005],m=-16000;
int dfs(int nod)
{int i,sp;
viz[nod]=true;
for(i=0;i<v[nod].size();i++)
if(!viz[v[nod][i]])
{sp=dfs(v[nod][i]);
if(sp>0)
a[nod]+=sp;
if(a[nod]>m) m=a[nod];
}
return max(0,a[nod]);
}
int main ()
{int i,x,y;
ifstream f("asmax.in");
ofstream g("asmax.out");
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
for(i=1;i<n;i++)
{f>>x>>y;
v[x].pb(y);
v[y].pb(x);}
dfs(1);
g<<m;
f.close(); g.close();
return 0;
}