Cod sursa(job #1902287)

Utilizator Mircea_DonciuDonciu Mircea Mircea_Donciu Data 4 martie 2017 14:58:54
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <deque>
#include <vector>
#define inf 0x3f3f3f3f
using namespace std;
int n,i,maxi,x,y,v[16005],use[16005];
vector <int> graf[16005];
void DFS(int x)
{
    int j;
    use[x]=1;
    for(j=0; j<graf[x].size(); j++)
    {
        if(!use[graf[x][j]])
        {
            DFS(graf[x][j]);
            v[x]=max(v[x],v[graf[x][j]]+v[x]);
        }
    }
}
int main()
{
    ifstream f("asmax.in");
    ofstream g("asmax.out");
    maxi=-inf;
    f>>n;
    for(i=1; i<=n; i++) f>>v[i];
    for(i=1; i<n; i++)
    {
        f>>x>>y;
        graf[x].push_back(y);
        graf[y].push_back(x);
    }
    DFS(1);
    for(i=1; i<=n; i++)
    if(v[i]>maxi) maxi=v[i];
    g<<maxi<<'\n';
    f.close(); g.close();
    return 0;
}