Cod sursa(job #2223522)

Utilizator georgitTreista Georgiana georgit Data 20 iulie 2018 16:04:47
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include <fstream>
#define N 16005
#include <vector>

using namespace std;

vector <int> vecin[N];
int cost[N],v[N],maxi=-1e9;
bool viz[N];
void Cost(int nod)
{
    viz[nod]=1;
    cost[nod]=v[nod];
    for(int i=0;i<vecin[nod].size();i++)
    {
        int x=vecin[nod][i];
        if(viz[x]==0)
        {
            Cost(x);
            if(cost[x]>0)
                cost[nod]+=cost[x];
        }
    }
    maxi=max(maxi,cost[nod]);
}
int main()
{
    ifstream f("asmax.in");
    ofstream g("asmax.out");
    int n;
    f>>n;
    for(int i=1;i<=n;i++)
        f>>v[i];
    for(int i=1;i<n;i++)
    {
        int a,b;
        f>>a>>b;
        vecin[a].push_back(b);
        vecin[b].push_back(a);
    }
    Cost(1);
    g<<maxi<<" ";
    return 0;
}