Cod sursa(job #1457499)

Utilizator xraven78Eduard Mihes xraven78 Data 3 iulie 2015 15:29:50
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.56 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");

int d[16500],v[16500];
bool bf[16500];
vector <int> a[16500];
int n,ans = -1000000000;
void dfs(int x)
{
bf[x]=true;
d[x]=v[x];
for(int i=0;i<a[x].size();i++)
if(bf[a[x][i]]==false)
{
dfs(a[x][i]);
if(d[a[x][i]]>0) d[x]+=d[a[x][i]];
}
ans=max(ans,d[x]);
}

int main()
{
f>>n;
for(int i=1;i<=n;i++) f>>v[i];
int x,y;
for(int i=1;i<n;i++)
{
    f>>x>>y;
    a[x].push_back(y);
    a[y].push_back(x);
}
dfs(1);
g<<ans;
    return 0;
}