Cod sursa(job #3198544)

Utilizator danyyyDaniel danyyy Data 29 ianuarie 2024 19:16:10
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.83 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
const int N=16001;
vector<int>v[N+1];
int ver[N+1],val[N+1];
int maxi=-1000001;
int parc(int x)
{
    ver[x]=1;
    int s=val[x],semi;
    for(auto y:v[x])
    {
        if(ver[y]==0)
        {
            semi=parc(y);
            if(semi>0)s=s+semi;
        }
    }
    if(s>maxi)
    {
        maxi=s;
    }
    return s;
}
int main()
{
    int i,j,n,m,x1,x2,sol;
    fin>>n;
    for(i=1; i<=n; i++)
        fin>>val[i];
    for(i=1; i<=n-1; i++)
    {
        fin>>x1>>x2;
        v[x1].push_back(x2);
        v[x2].push_back(x1);
    }
    for(i=1; i<=n; i++)
    {
        if(ver[i]==0)
        {
            sol=parc(i);
            if(sol>maxi)maxi=sol;
        }
    }
    fout<<maxi;
}