Cod sursa(job #1221300)

Utilizator CostanMiriamCostan Miriam CostanMiriam Data 20 august 2014 02:07:47
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream fin ("asmax.in");
ofstream fout ("asmax.out");

vector <int> l[16010];

int f[16010],v[16010],d[16010],i,n,x,y,maxim;

void dfs (int nod) {
    f[nod]=1;
    d[nod]=v[nod];
    for (int i=0;i<l[nod].size();i++) {
        if (f[l[nod][i]]==0) {
            dfs(l[nod][i]);
            if (d[l[nod][i]]>0)
                d[nod]+=d[l[nod][i]];
        }
    }
}

int main () {

    fin>>n;
    for (i=1;i<=n;i++)
        fin>>v[i];
    for (i=1;i<n;i++) {
        fin>>x>>y;
        l[x].push_back(y);
        l[y].push_back(x);
    }
    dfs(1);
    for (i=1;i<=n;i++)
        if (d[i]>maxim)
            maxim=d[i];
    fout<<maxim<<"\n";

    return 0;
}