Cod sursa(job #2861373)

Utilizator Theo14Ancuta Theodor Theo14 Data 3 martie 2022 21:06:06
Problema Asmax Scor 50
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.81 kb
#include<bits/stdc++.h>
using namespace std;

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

int n,w[162],a,b,viz[163],c[163],s[163];
vector<int>v[162];

void dfs(int x)
{
    viz[x]=1;
    for(auto it:v[x])
    {
        if(viz[it]==0)
        {
            viz[it]=1;
            dfs(it);
            if(s[it]>0)
                s[x]+=s[it];
        }
    }
    s[x]+=w[x];
}

int main()
{
    int i,maxi=INT_MIN;
    f>>n;
    for(i=1;i<=n;i++)
    {
        f>>w[i];
    }
    for(i=1;i<n;i++)
    {
        f>>a>>b;
        c[b]=1;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    for(i=1;i<=n;i++)
    {
        if(c[i]==0)
        {
            dfs(i);
        }
    }
    for(i=1;i<=n;i++)
        maxi=max(maxi,s[i]);
    g<<maxi;
    return 0;
}