比赛 20111109 评测结果 EEEEETTEEE
题目名称 火车站饭店 最终得分 0
用户昵称 血之侍卫 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-11-09 10:38:29
显示代码纯文本
#include<cstdio>
using namespace std;
int n;
int a[1000];
int main()
{
	freopen("profitz.in","r",stdin);
	freopen("profitz.out","w",stdout);
	bool v[1000][1000],ava[1000]={true};
	scanf("%d",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%d",&a[i]);
		ava[i]=true;
	}
	for(int i=1;i<n;i++)
	{
		for(int j=1;j<n;j++)
			v[i][j]=false;
	}
	for(int i=1;i<n;i++)
	{
		int x,y;
		scanf("%d%d",&x,&y);
		v[x][y]=true;
		v[y][x]=true;
	}
	int t=n-1;
	while(t>0)
	{
		for(int i=1;i<=n;i++)
		{	
			int total=0;
			int total2=0;
			for(int j=1;j<=n;j++)
			{
				if(v[i][j])
				{
					total+=a[j];
					total2++;
				}
			}
			if(total>a[i]&&total2>1)
			{
				ava[i]=false;
				for(int j=1;j<=n;j++)
				{
					v[i][j]=false;
					v[j][i]=false;
					t-=2;
				}
			}
		}
	}
	int ans=0;
	for(int i=1;i<=n;i++)
	{
		if(ava[i])
			ans+=a[i];
	}
	printf("%d",ans);
	return 0;
}