Cod sursa(job #1418884)

Utilizator Liviu98Dinca Liviu Liviu98 Data 14 aprilie 2015 12:18:30
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <fstream>
#define NMax 16001
#include <vector>
using namespace std;
int N;
vector<int> V[NMax];
int Val[NMax],Uz[32003],Sum[32003],Max=-1001;
ifstream g("asmax.in");
ofstream f("asmax.out");

void Citire()
{
    g>>N;
    int x,y;
    for(int i=1;i<=N;i++)
        g>>Val[i];
    for(int k=0;k<N-1;k++)
    {
        g>>x>>y;
        V[x].push_back(y);
        V[y].push_back(x);
    }
}

void DFS(int x)
{
    Uz[x]=1;
    vector<int>::iterator it;
    for(it=V[x].begin();it!=V[x].end();it++)
    {
        if(Uz[*it]==0)
        {
            DFS(*it);
            Val[x]=max(Val[x],Val[x]+Val[*it]);
        }
    }
    Max=max(Max,Val[x]);
}

int main()
{
    Citire();
    DFS(1);
    f<<Max;
}