Cod sursa(job #1920748)

Utilizator dianamichesaRosu Diana Michesa dianamichesa Data 10 martie 2017 09:47:31
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
vector <int> v[16001];
int n,viz[16001];
long long val[16001],sum[16001],smax;
void dfs(int nod)
{
    viz[nod]=1;
    sum[nod]=val[nod];
    for(int i=0;i<v[nod].size();i++){
        int y=v[nod][i];
        if(viz[y]==0){
            dfs(y);
            if(sum[y]>0)
                sum[nod]+=sum[y];
        }
    }
    if(sum[nod]>smax)
        smax=sum[nod];
}
int main()
{
    f>>n;
    for(int i=1;i<=n;i++)
        f>>val[i];
    int a,b;
    for(int i=1;i<n;i++){
        f>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    }
    dfs(1);
    g<<smax;
    return 0;
}