比赛 练习222 评测结果 AAAAAAAA
题目名称 服务点设置 最终得分 100
用户昵称 Hyoi_ctime 运行时间 0.011 s
代码语言 C++ 内存使用 0.36 MiB
提交时间 2017-05-16 19:00:42
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m;
int ll[105][105];
const int INF=87654321;
void floyd(){
	for(int k=0;k<n;k++)
	for(int i=0;i<n;i++)
	for(int j=0;j<n;j++)
	ll[i][j]=min(ll[i][j],ll[i][k]+ll[k][j]);
}
int main()
{
	freopen("djsa.in","r",stdin);
	freopen("djsa.out","w",stdout);
	scanf("%d%d",&n,&m);
	int u,v,w;
	for(int i=0;i<n;i++)
    	for(int j=0;j<n;j++)
    	{
    		if(i==j)
    		ll[i][j]=0;
    		else
    		ll[i][j]=INF;
    	}
    	for(int i=0;i<m;i++)
    	{
    	scanf("%d%d%d",&u,&v,&w);
		ll[v][u]=ll[u][v]=w;
		}
		floyd();
		int lyj=INF;
		int ans=-INF;
		for(int i=0;i<n;i++)
		{
			int pml=-INF;
			for(int j=0;j<n;j++)
			{
					if(i==j){
				continue;
			}
			if(ll[i][j]>pml)
			{
				pml=ll[i][j];
			}
			}
			if(lyj>pml)
			{
				lyj=pml;
				ans=i;
			}
		
		}
		printf("%d",ans);
		
}