Cod sursa(job #2164380)

Utilizator Victor24Vasiesiu Victor Victor24 Data 12 martie 2018 23:17:28
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <fstream>
#include <queue>
#include <vector>
#include <iostream>
using namespace std;

ifstream f ("asmax.in");
ofstream g ("asmax.out");

int n, m, val[16005], a, b, ma=0, nod, i, ok, fv[16005];

vector < int > G[16005];

void dfs ( int nod )
{
    fv[nod] = 1;

    for ( int i = 0 ; i < G[nod].size() ; i++ )
    {
        if (  fv[ G[nod][i] ] == 0 )
        {
            dfs( G[nod][i] );
            val[nod] = max ( val[nod], val[nod] + val[ G[nod][i] ] );
        }

    }

}

int main()
{
    f>>n;

    for ( i = 1; i <= n ; i++ )
    {
        f>>val[i];
    }
    for ( i = 1 ; i <= n - 1 ; i++ )
    {
        f>>a>>b;

        G[a].push_back(b);
        G[b].push_back(a);
    }

    dfs(1);

    for ( i = 1; i <= n ; i++ )
    {
        ma = max ( ma, val[i] );
    }

    g<<ma;

    return 0;
}