Cod sursa(job #2205182)

Utilizator Tudor27Tudor Iacob Tudor27 Data 18 mai 2018 10:14:09
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;

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

int rez;

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

void dfs(int x){
    viz[x]=true;
    int y;
    for(int i=0;i<v[x].size();i++){
        y=v[x][i];
        if(!viz[y]){
            dfs(y);
            if(p[y]>0){
                p[x]+=p[y];
            }
        }
    }
    rez=max(rez,p[x]);
}

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);
    }
    dfs(1);
    fout<<rez;
    return 0;
}