记录编号 245694 评测结果 AAAAAAAA
题目名称 双服务点设置 最终得分 100
用户昵称 GravatarOstmbh 是否通过 通过
代码语言 C++ 运行时间 0.007 s
提交时间 2016-04-04 12:32:58 内存使用 0.46 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
#define MAX 99999999
int n,m,i,j,k,u,v,w,d[200][200]={0};
int main()
{
	freopen("djsb.in","r",stdin);
	freopen("djsb.out","w",stdout);
	scanf("%d%d",&n,&m);
	for (i=0;i<n;++i)
		for (j=0;j<n;++j)
			if (i^j)
			{
			d[i][j]=MAX;
			}
			else d[i][j]=0;
	for (i=0;i<m;++i)
	{
	scanf("%d%d%d",&u,&v,&w);	
	d[u][v]=w;
	d[v][u]=w;
	}
for (k=0;k<n;++k)
		for (i=0;i<n;++i)
			for (j=0;j<i;++j)
				if (d[i][k]+d[k][j]<d[i][j])
					d[i][j]=d[j][i]=d[i][k]+d[k][j];
	int t,min,max,a1,a2;
   max=MAX;
	for (i=0;i<n;++i)
		for (j=i+1;j<n;++j)
		{
			min=0;
			for (k=0;k<n;++k)
				{
					t=d[i][k];
					if(d[j][k]<t) t=d[j][k];
					if(t>min) min=t;
				}
			if (min<max) 
			{
				max=min;
				a1=i;
				a2=j;
				}
		}
	printf("%d %d",a1,a2);
	return 0;
}