Cod sursa(job #2363607)

Utilizator DumitresculEDumitrescul Eduard DumitresculE Data 3 martie 2019 13:59:36
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("asmax.in");
ofstream fout("asmax.out");
vector <int> m[16005];
int val[16005],viz[16005],cost[16005];
void Dfs(int nod){
    viz[nod]=1;
    int i;
    for(i=0;i<m[nod].size();i++){
        if(viz[m[nod][i]]==0){
            Dfs(m[nod][i]);
            cost[nod]=max(cost[nod], cost[nod]+cost[m[nod][i]]);
        }
    }
}
int main()
{
    int n,i,x,y,sol;
    fin>>n;
    for(i =1;i<=n;i++)
        fin>>cost[i];
    for(i=1;i<n;i++){
        fin>>x>>y;
        m[x].push_back(y);
        m[y].push_back(x);
    }
    Dfs(1);
    sol=cost[1];
    for(i=2;i<=n;i++){
        if(sol<cost[i])
            sol=cost[i];
    }
    fout<<sol;
    return 0;
}