Cod sursa(job #3281017)

Utilizator inacioataCioata Ana Irina inacioata Data 28 februarie 2025 08:39:43
Problema Asmax Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>
using namespace std;
ifstream fin("n.in");
ofstream fout("n.out");
short n, sum1, s[16002], a[16002];
bool viz[16002];
vector<int> L[16002];

void DFS(int k)
{
    viz[k] = 1;
    s[k] = a[k];
    for(int i : L[k])
        if(viz[i] == 0)
        {
            DFS(i);
            s[k] += s[i];
        }
    sum1 = max(sum1, s[k]);
    if(s[k] < 0) s[k] = 0;
}

int main()
{
    int i, j;
    sum1 = INT_MIN;
    fin >> n;
    for(i = 1; i <= n; i++)
        fin >> a[i];
    while(fin >> i >> j)
    {
        L[i].push_back(j);
        L[j].push_back(i);
    }
    DFS(1);
    fout << sum1 << "\n";
    fout.close();
    return 0;
}