Cod sursa(job #2322315)

Utilizator Anastasia11Susciuc Anastasia Anastasia11 Data 17 ianuarie 2019 18:06:50
Problema Asmax Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <iostream>
#include <fstream>
#include <vector>
#define Nmax 16005

using namespace std;

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

int n, x, y;
int sum[Nmax];
bool vis[Nmax];
vector <int> v[Nmax];

void dfs(int x)
{
    vis[x]=1;
    for (int i = 0, l=v[x].size(); i < l; i++)
    {
        int y=v[x][i];
        if(vis[y] == 1) continue;
        dfs(y);
        if(sum[y] >= 0)
            sum[x]+=sum[y];
    }
}

int main()
{
    f >> n;
    for (int i = 1; i <= n; i++) f >> sum[i];
    for (int i = 2; i <= n; i++)
    {
        f >> x >> y;
        v[x].push_back(y);
        v[y].push_back(x);
    }
    dfs(1);
    int ans=0;
    for (int i = 1; i <= n; i++)
        ans=max(ans, sum[i]);

    g << ans;
    return 0;
}