Cod sursa(job #1360847)

Utilizator razboi4Manole Iulian razboi4 Data 25 februarie 2015 18:22:05
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.78 kb
#include<bits/stdc++.h>
using namespace std;
typedef vector < int >::iterator IT;
vector < vector < int > > arb(16001);
int N,v[16002],MAX;bool viz[16005];
void read()
{
    freopen("asmax.in","r",stdin);
    scanf("%d",&N);
    for(int i=1;i<=N;++i)
        scanf("%d",&v[i]);
    for(int i=1;i!=N;++i){
        int x,y;
        scanf("%d%d",&x,&y);
        arb[x].push_back(y);
        arb[y].push_back(x);
    }
}
int dfs(int X)
{
    int max_temp=v[X];
    viz[X]=1;
    for(IT it=arb[X].begin();it!=arb[X].end();++it)
        if(!viz[*it])
            max_temp=max(max_temp,max_temp+dfs(*it));
    MAX=max(MAX,max_temp);
    return max_temp;
}
int main()
{
    read();
    MAX=v[1];
    dfs(1);
    fprintf(fopen("asmax.out","w"),"%d",MAX);
    return 0;
}