Cod sursa(job #3340941)

Utilizator Iancu007Sandea Iancu-Ioan Iancu007 Data 17 februarie 2026 13:03:23
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <bits/stdc++.h>

using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
vector<int> g[16005];
int v[16005], v2[16005];
bool f[16005];
queue<int> q;
int rezolva(int a)
{
    if (!f[a])
    {
        f[a]=1;
        int c;
        int maxx=0;
        for (int i=0; i<g[a].size(); i++)
            if (!f[g[a][i]])
            {
                c=rezolva(g[a][i]);
                if (c>0)
                    maxx+=c;
            }
        v2[a]=maxx+v[a];
        return maxx+v[a];
    }
    return 0;
}
int main()
{
    int n, a, b;
    fin>>n;
    for (int i=1; i<=n; i++)
        fin>>v[i];
    for (int i=1; i<=n-1; i++)
    {
        fin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    int maxx=rezolva(1);
    for (int i=2; i<=n; i++)
        if (maxx<v2[i])
            maxx=v2[i];
    fout<<maxx;
    return 0;
}