Cod sursa(job #2050196)

Utilizator alexandra_paticaAndreea Alexandra Patica alexandra_patica Data 27 octombrie 2017 23:52:56
Problema Asmax Scor 40
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <cmath>
#include <cstring>
using namespace std;
ifstream f ("asmax.in");
ofstream g ("asmax.out");

int n, i, v[16010], Max, m, x, y, aux, s[16010];
bool a[16010][16010], ap[16010];

int dfs (int w)
{
    ap[w]=1;
    s[w]=v[w];

    for (int i=1; i<=n; i++){
        if (a[w][i]==1 && ap[i]==0) {
            int x=dfs(i);
            if (s[w]+x>=s[w]) s[w]+=x;
        }
    }
    if (s[w]>Max) Max=s[w];
    return s[w];
}

int main ()
{
    f >> n ;
    for (i=1; i<=n; i++) f >> v[i];
    for (i=1; i<n; i++){
        f >> x >> y;
        a[x][y]=a[y][x]=1;
    }
     x=dfs(1);
//     for (i=1; i<=n; i++){
//        if (s[i]>Max) Max=s[i];
//     }
   g << Max;

    return 0;
}