Cod sursa(job #2309675)

Utilizator GiihuoTihufiNeacsu Stefan GiihuoTihufi Data 29 decembrie 2018 16:55:29
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("asmax.in");
ofstream g("asmax.out");

vector<int> V[16002];
int D[16002],W[16002];
int mx=INT_MIN;
bool M[16002];

void cost(int node)
{
    M[node]=1,D[node]=W[node];
    for(int i=0;i<V[node].size();i++)
    {
        int x=V[node][i];
        if(M[x]==0)
        {
            cost(x);
            if(D[x]>0) D[node]+=D[x];
        }
    }
    mx=max(mx,D[node]);
}

int main()
{
    int N; f>>N;
    for(int i=1;i<=N;f>>W[i++]);
    for(int i=1;i<N;i++)
    {
        int x,y; f>>x>>y;
        V[x].push_back(y);
        V[y].push_back(x);
    }
    cost(1);
    g<<mx<<" ";
    return 0;
}