Cod sursa(job #2048320)

Utilizator leraValeria lera Data 25 octombrie 2017 22:10:11
Problema Asmax Scor 100
Compilator cpp Status done
Runda hlo2017_cj_av_l4 Marime 0.88 kb
#include <iostream>
#include <fstream>
#include <vector>
#define Nmax 16005
using namespace std;

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

int n, viz[Nmax],nd[Nmax],a,b,maxim = -999999999;
vector<int>v[Nmax];
void dfs(int nod)
{
    viz[nod] = 1;
    for(int i = 0; i < v[nod].size(); i++)
    {
        if(!viz[v[nod][i]])
        {
            dfs(v[nod][i]);
            nd[nod] = max(nd[nod], nd[nod] + nd[v[nod][i]]);
        }
    }
    //cout << nod <<" " << nd[nod] <<" " ;
}
int main()
{
    fin >> n;
    for(int i = 1; i <= n; i ++)
    {
        fin >> nd [i];
        //cout << nd[i] <<" ";
    }

    for(int i = 1; i < n; i ++)
    {
        fin >> a >> b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    dfs(1);

    for(int i = 1; i <= n; i++)maxim = max(maxim, nd[i]);
    fout << maxim;
    return 0;
}