Cod sursa(job #2834572)

Utilizator AndreiBOTOBotocan Andrei AndreiBOTO Data 17 ianuarie 2022 11:31:51
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

ifstream fin("asmax.in");
ofstream fout("asmax.out");

 const int NMAX=16005;
int cost[NMAX];
int s[NMAX];
vector<int>v[NMAX];
int ok[NMAX];

void dfs(int nod)
{
    ok[nod]=1;
    s[nod]=cost[nod];
    for(auto i:v[nod])
    {
        if(ok[i]!=1)
        {
            dfs(i);
            s[nod]=max(s[nod],s[nod]+s[i]);
        }
    }
}

int main()
{
    int y,i,n,x,maxi=-1e9;
    fin>>n;
    for(i=1;i<=n;i++)
        fin>>cost[i];
    for(i=1;i<n;i++)
    {
        fin>>x>>y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1);
    for(i=1;i<=n;i++)
        maxi=max(maxi,s[i]);
    fout<<maxi;
    return 0;
}