Cod sursa(job #895214)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 27 februarie 2013 10:33:52
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.86 kb
#include<fstream>
#define dim 16003
#include<bitset>
#include<cstring>
#include<vector>
using  namespace std;

ifstream f("asmax.in");
ofstream g("asmax.out");

vector<int>G[dim];
int n,i,j,M[dim],v[dim],x,y,maxu;
bitset<dim>viz;
void dfs(int nod ){

    viz[nod]=1;

    for(int i=0;i<G[nod].size();++i){
        int fiu=G[nod][i];

        if(!viz[fiu]){

            dfs(fiu);
            if(v[fiu]>0)
                v[nod]+=v[fiu];
        }

    }
}
inline int maxim (int a,int b) {
    if(a>b)
        return a;
    return b;
}
int main (){

    f>>n;
    for(i=1;i<=n;++i)
        f>>v[i];
    for(i=1;i<n;++i){
        f>>x>>y;
        G[x].push_back(y);
        G[y].push_back(x);
    }
    dfs(1);
    maxu=-100000;

    for(i=1;i<=n;++i){
        maxu=maxim(maxu,v[i]);
    }
    g<<maxu<<"\n";
    return 0;
}