Cod sursa(job #2762561)

Utilizator marcumihaiMarcu Mihai marcumihai Data 8 iulie 2021 14:26:42
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f ("asmax.in");
ofstream g ("asmax.out");

int n;
int val[100005];
vector <int > a[100005];
int dp[100005];
int maxim;
void Dfs(int nod , int parinte)
{
    dp[nod]=val[nod];
    for(int x=0 ; x<a[nod].size();++x)
    {
        if(a[nod][x]!=parinte)
        {
            Dfs(a[nod][x] , nod);
            if(dp[a[nod][x]]>0)
                dp[nod]+=dp[a[nod][x]];
        }
    }
}
int main()
{
    f>>n;
    for(int i=1;i<=n;++i)
        f>>val[i];
    for(int i=1;i<n;++i)
    {
        int x , y;
        f>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    Dfs(1 , 1);
    for(int i=1;i<=n;++i)
        maxim=max(maxim , dp[i]);
    g<<maxim;
    return 0;
}