Cod sursa(job #2205170)

Utilizator Tudor27Tudor Iacob Tudor27 Data 18 mai 2018 09:57:26
Problema Asmax Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

ifstream fin("asmax.in");
ofstream fout("asmax.out");

int sm;

vector <int> v[16002];
int p[16002];
bool viz[16002];

int dfs(int x){
    int sc=p[x],aux,mx=-999999;
    viz[x]=true;
    int y;
    for(int i=0;i<v[x].size();i++){
        y=v[x][i];
        if(!viz[y]){
            aux=dfs(y);
            if(aux>mx){
                mx=aux;
            }
            if(aux>0){
                sc+=aux;
            }
        }
    }
    return max(sc,mx);
}

int main()
{
    int n,x1,x2;
    fin>>n;
    for(int i=1;i<=n;i++){
        fin>>p[i];
    }
    for(int i=0;i<n;i++){
        fin>>x1>>x2;
        v[x1].push_back(x2);
        v[x2].push_back(x1);
    }
    fout<<dfs(1);
    return 0;
}