Cod sursa(job #1899274)

Utilizator RaduhhRadu Flocea Raduhh Data 2 martie 2017 17:07:04
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <bits/stdc++.h>

using namespace std;

int n,m,t[16005],rez[16005],rs,i;
bool viz[16005];
vector <int> v[16005];

void dfs(int nod)
{
    viz[nod]=1;
    rez[nod]=t[nod];
    for (int i=0; i<v[nod].size(); i++)
    {
        if (!viz[v[nod][i]])
        {
            dfs(v[nod][i]);
            if (rez[v[nod][i]]+rez[nod]>rez[nod]) rez[nod]=rez[v[nod][i]]+rez[nod];
        }
    }
    rs=max(rs,rez[nod]);
}

int main() 
{
    ifstream cin("asmax.in");
    ofstream cout("asmax.out");
    cin>>n;
    for (i=1; i<=n; i++) cin>>t[i];
    for (i=1; i<n; i++)
    {
        int a,b;
        cin>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    dfs(1);
    cout<<rs;
}