Cod sursa(job #1216630)

Utilizator TibixbAndrei Tiberiu Tibixb Data 5 august 2014 09:49:31
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include<fstream>
#include<vector>
using namespace std;
int sp, n, maxim, v[16003], D[16003], U[16003], x, i, y;
vector <int> L[16003];
void dfs(int nod){
    D[nod]=v[nod];
    U[nod] = 1;

    for(int i=0; i<L[nod].size(); i++){
        if(U[ L[nod][i] ] == 0){
            dfs(L[nod][i]);
            if(D[L[nod][i]]>0)
                D[nod]+=D[L[nod][i]];
        }
    }
    if(D[nod]>maxim)
        maxim=D[nod];
}
ifstream in("asmax.in");
ofstream out("asmax.out");
int main(){
    in>>n;
    maxim=-9999999;
    for(i=1; i<=n; i++)
        in>>v[i];
    for(i=1; i<=n; i++){
        in>>x>>y;
        L[x].push_back(y);
        L[y].push_back(x);
    }

    dfs(1);


    out<<maxim;
return 0;
}