Cod sursa(job #3223157)

Utilizator GabrielMarfonMarfon Gabriel GabrielMarfon Data 12 aprilie 2024 15:44:49
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("asmax.in");
ofstream cout("asmax.out");
int v[16001];
vector<vector<int>> G;
bool viz[100001];
int s;
int dfs(int node)
{
    viz[node]=true;
    for(int vec:G[node])
    {
        if(viz[vec]==false)
        {
            dfs(vec);
            if(v[vec]>0)
            {
                v[node]=v[node]+v[vec];
            }
        }
    }
    if(s<v[node])
    {
        s=v[node];
    }
    return s;
}
int main()
{
    int n;
    cin>>n;
    G.resize(n+1);
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    int a,b;
    for(int i=1;i<=n-1;i++)
    {
        cin>>a>>b;
        G[a].push_back(b);
        G[b].push_back(a);
    }
    cout<<dfs(1);
    return 0;
}