Cod sursa(job #503820)

Utilizator Cristy94Buleandra Cristian Cristy94 Data 25 noiembrie 2010 09:29:11
Problema Asmax Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 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[16001];
int cost[16001],N,x,y,t[16001],varf_graf,sol;
void df(int v){
	for(int i=0;i<a[v].size();i++){
		if(cost[v]+cost[a[v][i]] > cost[a[v][i]] )
			cost[a[v][i]] =cost[v]+cost[a[v][i]],sol=max(sol,cost[a[v][i]]);
		df(a[v][i]);
    }
}
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);
		 t[y]=x;
	}
    for(int i=1;i<=N;i++)
		if(!t[i])
			varf_graf = i;
	df(varf_graf);
	fprintf(g,"%d",sol);
return 0;
}