Cod sursa(job #1315404)

Utilizator bogdanboboc97Bogdan Boboc bogdanboboc97 Data 12 ianuarie 2015 19:49:26
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <bits/stdc++.h>
using namespace std;
ifstream in("asmax.in");
ofstream out("asmax.out");
vector< vector<int> > a;
vector<bool> v;
vector<int> d;
int sol;
void dfs(int x)
{
    v[x]=true;
    for(auto i: a[x])
    if(v[i]==false)
    {
        dfs(i);
        if(d[i]>0)d[x]+=d[i];
        sol=max(d[x],sol);
    }
}
int main()
{
    int n,x,y;
    in>>n;
    a=vector< vector<int> >(n+1);
    d=vector<int>(n+1);
    v=vector<bool>(n+1);
    for(int i=1;i<=n;i++)in>>d[i];
    for(int i=1;i<n;i++)
    {
        in>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    sol=numeric_limits<int>::min();
    dfs(1);
    out<<sol;
    return 0;
}