比赛 20101224 评测结果 AAAAAAEEEE
题目名称 最佳地点 最终得分 60
用户昵称 郭乾乐 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2010-12-24 19:50:50
显示代码纯文本
#include<cstdio>
using namespace std;
const int oo=99999999;
int f[501][501]; 
int main()
{
	freopen("bestspot.in","r",stdin);
	freopen("bestspot.out","w",stdout);
	int p,ee,c,fav[501],i,j,k;
	scanf("%d%d%d",&p,&ee,&c);
	for(i=1;i<=p;i++)
	{
		for(j=1;j<=p;j++)
			f[i][j]=oo;
		f[i][i]=0;
	}
	for(i=1;i<=ee;i++)
		scanf("%d",&fav[i]);
	for(i=1;i<=c;i++)
	{
		int x,y,z;
		scanf("%d%d%d",&x,&y,&z);
		f[x][y]=z;
		f[y][x]=z;
	}
	for(k=1;k<=p;k++)
		if(f[i][k]!=oo&&f[k][j]!=oo)
		{
		    for(i=1;i<=p;i++)
			    for(j=1;j<=p;j++)
				    if(f[i][j]>f[i][k]+f[k][j])
					    f[i][j]=f[i][k]+f[k][j];
		}
	
	int minn=oo,ji=oo;			
	for(i=1;i<=p;i++)
	{
		int temp=0;
		for(j=1;j<=ee;j++)
			temp+=f[i][fav[j]];
		if(temp<minn)
		    {
			    ji=i;
			    minn=temp;
		    }
	}
	printf("%d",ji);
	return 0;
}