Cod sursa(job #690345)

Utilizator lucian666Vasilut Lucian lucian666 Data 25 februarie 2012 15:49:13
Problema Asmax Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.74 kb
#include<fstream>
#include<vector>
#include<algorithm>
#define NN 16001
#define INF 0x3f3f3f3f
#define pb push_back
using namespace std;
ofstream out("asmax.out");
vector<int>G[NN];
int uz[NN],v[NN],n,m;
bool cmp(int a,int b)
{
	if(a>b)
		return true;
	return false;
}
void citire();
void solve(int );
int main()
{
	citire();
	solve(1);
	sort(v+1,v+n+1,cmp);
	out<<v[1];
	return 0;
}
void citire()
{
	ifstream in("asmax.in");
	in>>n;
	for(int z=1;z<=n;z++)
		in>>v[z];
	int i,j;
	while(in>>i>>j)
	{
		G[i].pb(j);
		G[j].pb(i);
	}
}
void solve(int start)
{
	uz[start]=1;
	for(vector<int>::iterator i=G[start].begin();i<G[start].end();++i)
		if(!uz[*i])
		{
			solve(*i);
			if(v[*i]>0)
			v[start]+=v[*i];
		}
}