Cod sursa(job #864460)

Utilizator dtoniucDaniel Toniuc dtoniuc Data 24 ianuarie 2013 23:35:41
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#define NMAX 16010
using namespace std;

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

int cmp (int a,int b)
{
    return a>b;
}
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);
    }

    DFS(1);

    sort(v+1,v+n+1,cmp);

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