Cod sursa(job #1233418)

Utilizator DanyPrvPirvoaica Daniel DanyPrv Data 25 septembrie 2014 12:11:32
Problema Asmax Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream f("asmax.in");
ofstream g("asmax.out");
vector <int> a[16001];
int n,i,x,y,gr[16001],nre[16001],smax,viz[16001];
void coada(int nr){
	viz[nr]=1;
	for(int i=0;i<nre[nr];i++){
		if(viz[a[nr][i]]==0){
			int el=a[nr][i];
			coada(el);
			if(gr[nr]+gr[a[nr][i]]>gr[nr])
				gr[nr]=gr[nr]+gr[a[nr][i]];
				smax=max(smax,gr[nr]);
		}
	}

}
int main()
{
    f>>n;
    for(i=1;i<=n;i++)
    	f>>gr[i];
	for(i=1;i<=n-1;i++){
		f>>x>>y;
		a[x].push_back(y);
		a[y].push_back(x);
	}
	for(i=1;i<=n;i++)
		nre[i]=a[i].size();
	coada(1);
	g<<smax;
    return 0;
}