Cod sursa(job #1604840)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 18 februarie 2016 17:06:10
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
const int nmax=16005;
int val[nmax],i,x,y,maxim,ayy,n;
vector <int> a[nmax];
bool viz[nmax];

int dfs (int nod)
{
    int aux,vecini,h,sumac=0;
    vecini=a[nod].size();
    viz[nod]=1;
    for (h=0;h<vecini;h++)
    {
        if (viz[a[nod][h]]==0)
        {
            aux=dfs(a[nod][h]);
            if (aux>0);
             sumac+=aux;
        }
    }

    sumac+=val[nod];

    if (sumac>maxim)
     maxim=sumac;

    if (sumac>0)
     return sumac;
    return 0;
}

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