Cod sursa(job #3239192)

Utilizator Alex_BerbescuBerbescu Alexandru Alex_Berbescu Data 2 august 2024 20:01:28
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.93 kb
#pragma GCC optimize("O3")
#pragma GCC optimize("fast-math")
#pragma GCC optimize("unroll-loops")
#include<bits/stdc++.h>

using namespace std;

int n, x, y;

int v[16005], sum[16005];
vector<int>noduri[16005];
bitset<16005>viz;


ifstream fin("asmax.in");
ofstream fout("asmax.out");


void dfs(int nod)
{
    viz[nod] = 1;
    sum[nod] = v[nod];
    for(auto it: noduri[nod])
    {
        if(!viz[it])
        {
            dfs(it);
            if(sum[it] > 0)
            {
                sum[nod] += sum[it];
            }
        }
    }
}


int32_t main(int argc, char * argv[])
{
    fin >> n;
    for(int i = 1; i <= n; ++i)
    {
        fin >> v[i];
    }
    while(fin >> x >> y)
    {
        noduri[x].push_back(y);
        noduri[y].push_back(x);
    }
    dfs(1);
    int maxi = INT_MIN;
    for(int i = 1; i <= n; ++i)
    {
        if(maxi < sum[i])
        {
            maxi = sum[i];
        }
    }
    fout << maxi;
    return 0;
}