Cod sursa(job #1540737)

Utilizator CalinSpiridonSpiridon Calin CalinSpiridon Data 3 decembrie 2015 10:04:41
Problema Asmax Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include <fstream>
#include <vector>
#include <bitset>
using namespace std;

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

int n, x, y, mx, sum, gg;
int v[16010];
vector <int> a[16010];
bitset <16010> b;

void dfs(int k){
    sum+=v[k];
    mx=max(sum, mx);
    for(int i=0;i<a[k].size();++i){
        gg=a[k][i];
        if(!b[gg]){
            b[gg]=true;
            dfs(gg);
        }
    }
}



int main(){
    fin>>n;
    for(int i=1;i<=n;++i) fin>>v[i];
    for(int i=1;i<=n-1;++i){
        fin>>x>>y;
        a[x].push_back(y);
        a[y].push_back(x);
    }
    for(int i=1;i<=n;++i){
        b[i]=true;
        dfs(i);
        sum=0;
        b.reset();
    }
    fout<<mx;


    return 0;
}