Cod sursa(job #1315419)

Utilizator bogdanboboc97Bogdan Boboc bogdanboboc97 Data 12 ianuarie 2015 19:58:14
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 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;
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];
    }
}
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);
    }
    dfs(1);
    int sol=numeric_limits<int>::min();
    for(int i=1;i<=n;i++)sol=max(d[i],sol);
    out<<sol;
    return 0;
}