记录编号 22799 评测结果 AAAAAAAAAA
题目名称 最佳地点 最终得分 100
用户昵称 Gravatar郭乾乐 是否通过 通过
代码语言 C++ 运行时间 0.250 s
提交时间 2010-12-27 18:58:10 内存使用 1.21 MiB
显示代码纯文本
#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++)
		    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++)
		{
			if(f[i][fav[j]]!=oo)
			    temp+=f[i][fav[j]];
			else
			{
				temp=oo;
				break;
			}
		}
		if(temp<minn)
		    {
			    ji=i;
			    minn=temp;
		    }
	}
	printf("%d",ji);
	return 0;
}