Cod sursa(job #1133434)

Utilizator oprea1si2si3Oprea Sebastian oprea1si2si3 Data 4 martie 2014 21:37:20
Problema Asmax Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include<fstream>
#include<iostream>
#include<vector>
using namespace std;

int N,val[16010],start,maxim=-99999999;
vector <int> v[16010];

void citire() {

    ifstream in("asmax.in");
    int i,x,y;
    in>>N;
    for(i=1;i<=N;i++)
        in>>val[i];
    for(i=1;i<=N-1;i++) {
        in>>x>>y;
        if(i==1)
            start=x;
        v[x].push_back(y);
    }
    in.close();

}


void dfs(int nod) {

    int vecin,i;
    for(i=0;i<v[nod].size();i++) {
        vecin=v[nod][i];
        dfs(vecin);
      //  cout<<nod<<' '<<val[nod]<<val[vecin]<<'\n';
        if(val[vecin]>0)
            val[nod]+=val[vecin];
        if(val[nod]>maxim)
            maxim=val[nod];
    }
}

void solve() {

    dfs(start);

}

void afisare() {

    ofstream out("asmax.out");
    out<<maxim<<'\n';
    out.close();

}

int main() {

    citire();
    solve();
    afisare();
    return 0;

}