Cod sursa(job #3155730)

Utilizator daria_pDaria Popescu daria_p Data 9 octombrie 2023 15:37:11
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Teme Pregatire ACM Unibuc 2014, Anul I, Semestrul 2 Marime 0.7 kb
#include <fstream>
#include <set>
using namespace std;
ifstream fin("asmax.in");
ofstream fout("asmax.out");
int n,i,j,viz[16005],s[16005],ma[16005],mi,x,y,k,a[16005],S,M,sol;
set <int> v[16005];
void dfs(int nod)
{
    viz[nod]=1;
    s[nod]=a[nod];
    ma[nod]=0;
    for (set<int>::iterator i=v[nod].begin();i!=v[nod].end();i++)
    {
        if (viz[*i]==0) {dfs(*i);
        if (s[*i]>0) s[nod]+=s[*i];}
    }
    sol=max(sol,s[nod]);
}
int main()
{
    fin >>n;
    for (i=1;i<=n;i++)
    {
        fin >>a[i];
        S=S+a[i];
    }
    while (fin >>x>>y)
    {
        v[x].insert(y);
        v[y].insert(x);
    }
    sol=-2e9;
    dfs(1);
    fout <<sol;
    return 0;
}