Mai intai trebuie sa te autentifici.

Cod sursa(job #1376862)

Utilizator OctaDuiu Octavian Octa Data 5 martie 2015 19:12:50
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
vector <int> v[16001];
bool u[16001];
int v_nod[16001];
int n, i, Max=-(1<<20), x, y;

void dfs(int node)
{
    u[node]=true;
    vector<int>::iterator it;

    for(it=v[node].begin(); it!=v[node].end(); ++it)
    if(!u[*it])
    {
        dfs(*it);
        v_nod[node]=max(v_nod[node], v_nod[node]+v_nod[*it]);
    }

    Max=max(Max, v_nod[node]);
}

int main()
{
    freopen("asmax.in", "r", stdin);freopen("asmax.out", "w", stdout);

    scanf("%d", &n);

    for(i=1; i<=n; ++i)
        scanf("%d", &v_nod[i]);

    for(i=1; i<n; ++i)
    {
        scanf("%d%d", &x, &y);
        v[x].push_back(y);
        v[y].push_back(x);
    }

    dfs(1);

    printf("%d\n", Max);

    return 0;
}