Cod sursa(job #2327681)

Utilizator MAXIMILLIANMUSOHYEAHYEAH MAXIMILLIANMUS Data 24 ianuarie 2019 20:02:27
Problema Asmax Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.78 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=sum[1];
    for (int i = 2; i <= n; i++)
        ans=max(ans, sum[i]);
 
    g << ans;
    return 0;
}