比赛 练习222 评测结果 AAAAAAAA
题目名称 服务点设置 最终得分 100
用户昵称 swttc 运行时间 0.004 s
代码语言 C++ 内存使用 0.47 MiB
提交时间 2017-05-16 18:57:27
显示代码纯文本
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int flag[200],minn,maxn[200],map[200][200],n,m,x,y,l;
int main()
{
	freopen("djsa.in","r",stdin);	
	freopen("djsa.out","w",stdout);
	scanf("%d%d",&n,&m);
	for(int i=0;i<n;i++)
	 for(int j=0;j<n;j++)
	 {
	 	if(i==j) map[i][j]=0;
	 	else map[i][j]=9999999;
	 }
	for(int i=1;i<=m;i++)
	{
		scanf("%d%d%d",&x,&y,&l);
		map[x][y]=l;
		map[y][x]=l;
	}
	for(int k=0;k<n;k++)
	 for(int i=0;i<n;i++)
	  for(int j=0;j<n;j++)
	  {
	  	if(map[i][j]>map[i][k]+map[k][j]) map[i][j]=map[i][k]+map[k][j];
	  }
	for(int i=0;i<n;i++)
	{
	 maxn[i]=-999999;
	 for(int j=0;j<n;j++)
	{
		if(map[i][j]>maxn[i]) maxn[i]=map[i][j];
	}
    }
    minn=999999;
    for(int i=0;i<n;i++)
    {
    	if(maxn[i]<minn)
    	{
    		minn=maxn[i];
    		memset(flag,0,sizeof(flag));
    		flag[i]=1;
		}
	}
	for(int i=0;i<n;i++)
	 if(flag[i]==1)
	  printf("%d",i);
	return 0;
}