Cod sursa(job #864345)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 24 ianuarie 2013 21:12:32
Problema Asmax Scor 50
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>
#define NMAX 16010
using namespace std;

int v[NMAX],n;
bool viz[NMAX],cup[NMAX];
vector <int> G[NMAX];

void DFS(int nod)
{
    viz[nod]=true;

    for(int i=0;i<G[nod].size();i++)
    {
        if(!viz[G[nod][i]])
        {
            DFS(G[nod][i]);
            if(v[G[nod][i]] > 0) v[nod]+=v[G[nod][i]];
        }

    }
}
int main()
{
    ifstream fin("asmax.in");
    ofstream fout("asmax.out");
    fin>>n;
    for(int i=1;i<=n;i++)
        fin>>v[i];
    int a,b;
    for(int i=1;i<=n-1;i++)
    {
        fin>>a>>b;
        G[a].push_back(b);
        G[b].push_back(a);
    }

    int p=1;
    while(v[p]<0) p++;

    DFS(p);

    fout<<v[p];
    return 0;
}