Cod sursa(job #2955798)

Utilizator gabriel.9619Gabriel Stefan Tita gabriel.9619 Data 17 decembrie 2022 20:17:13
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <fstream>
#include <climits>
#include <vector>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n, viz[16001], x[16001], s[16001], sol;
vector <int>l[16001];

void dfs(int nod)
{
    viz[nod]=1;
    s[nod]=x[nod];
    for(int i=0;i<l[nod].size();i++)
    {
        int fiu=l[nod][i];
        if(viz[fiu]==0)
        {
            dfs(fiu);
            if(s[fiu]>0)
            {
                s[nod]+=s[fiu];
            }
        }
    }
    sol=max(sol, s[nod]);
}

int main()
{
    int a, b, i;
    sol=INT_MIN;
    fin>>n;
    for(i=1;i<=n;i++)
    {
        fin>>x[i];
        sol=max(sol, x[i]);
    }
    for(i=1;i<=n-1;i++)
    {
        fin>>a>>b;
        l[a].push_back(b);
        l[b].push_back(a);
    }
    dfs(1);
    fout<<sol;
    return 0;
}