Cod sursa(job #1880632)

Utilizator valentinoMoldovan Rares valentino Data 15 februarie 2017 20:45:35
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <deque>
#include <vector>
#define inf 0x3f3f3f3f
using namespace std;

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

int n, v[16005], use[16005];
vector < int > graf[16005];

void DFS(int x)
{
    use[x] = 1;
    for(int i = 0 ; i < graf[x].size(); ++i)
    {
        if(!use[ graf[ x ][ i ] ])
        {
            DFS(graf[x][i]);
            v[x] = max(v[x], v[graf[x][i]] + v[x]);
        }
    }
}

int main()
{
    int maxx = -inf, x, y;
     f >> n;
     for(int i = 1; i <= n; ++i) f >> v[i];
     for(int i = 1; i < n; ++i)
     {
         f >> x >> y;
         graf[x].push_back(y);
         graf[y].push_back(x);
     }
     DFS(1);
     for(int i = 1; i <= n; ++i)
        if(v[i] > maxx) maxx = v[i];
     g << maxx;

}