Cod sursa(job #1684375)

Utilizator MaraaMMihali Mara MaraaM Data 10 aprilie 2016 23:50:39
Problema Asmax Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <fstream>
#include <vector>
using namespace std;
#define NMax 16005
vector <int> G[NMax];
int cost[NMax],t[NMax];
int n,i;
int maxsum=-16000000;
int dfs(int x)
{
    int s,aux;
    s=cost[x];
    for(unsigned i=0;i<G[x].size();++i)
        if(G[x][i]!=t[x])
    {
        t[G[x][i]]=x;
        aux=dfs(G[x][i]);
        if(aux>0)
            s+=aux;
    }
    maxsum=(maxsum,s);

    return s;
}
int main()
{
    ifstream f("asmax.in");
    ofstream g("asmax.out");
    f>>n;
    for(i=1;i<=n;i++) f>>cost[i];
    for(i=1;i<n;i++)
    {
        int a,b;
        f>>a>>b;
        G[a].push_back(b);
        G[b].push_back(a);
    }
    maxsum=max(maxsum,dfs(1));
    g<<maxsum;
    return 0;
}