Cod sursa(job #512917)

Utilizator Cristy94Buleandra Cristian Cristy94 Data 14 decembrie 2010 19:56:15
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<stdio.h>
#include<vector>
#include<algorithm>
using namespace std;
FILE *f=fopen("asmax.in","r");
FILE *g=fopen("asmax.out","w");
vector <int> a[16005];
int cost[16005],N,x,y,sol,viz[16005];
void df(int v){
	for(unsigned int i=0;i<a[v].size();i++){
		if(!viz[a[v][i]]){
			viz[a[v][i]]=1;
		    df(a[v][i]);
			if(cost[a[v][i]] > 0)
				cost[v]+=cost[a[v][i]];}
			if(cost[v]>sol)
				sol=cost[v];
	}
}
int main(){
	sol=-2000000000;
	fscanf(f,"%d",&N);
	for(int i=1;i<=N;++i)
		fscanf(f,"%d",&cost[i]);
	for(int i=1;i<N;++i)
		 fscanf(f,"%d%d",&x,&y),a[x].push_back(y),a[y].push_back(x);
	viz[1]=1;
    df(1);
	fprintf(g,"%d",sol);
return 0;
}