Cod sursa(job #1871378)

Utilizator Cudrici_CarinaCudrici Carina Cudrici_Carina Data 7 februarie 2017 12:12:59
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("asmax.in");
ofstream fo("asmax.out");

int n,c[16001],viz[16001],d[16001],sol=-(1<<30);
vector<vector<int>> G;

void ReadGraph()
{
    fi>>n;
    G.resize(n+1);
    for(int i=1; i<=n; i++) fi>>c[i];
    int x,y;
    while(fi>>x>>y)
    {
        G[x].push_back(y);
        G[y].push_back(x);
    }

}

void DF(int x)
{
    viz[x]=1;
    d[x]=c[x];
    for(auto & y : G[x])
    {
        if(viz[y]) continue;
        DF(y);
        if (d[y]>0) d[x]+=d[y];
    }
 sol=max(sol,d[x]);
}

int main()
{
    ReadGraph();
    DF(1);
    fo<<sol;
    return 0;
}