记录编号 69005 评测结果 AAAAAAAA
题目名称 双服务点设置 最终得分 100
用户昵称 Gravatarraywzy 是否通过 通过
代码语言 C++ 运行时间 0.007 s
提交时间 2013-09-07 18:51:13 内存使用 11.81 MiB
显示代码纯文本
#include<fstream>
using namespace std;
ifstream fin("djsb.in");
ofstream fout("djsb.out");
int f[101][101];
bool a[101][101]={0};
int n,m;
int mini=99999999;
class woca
{
public:
	int x;
	int y;
	int z;
}ans[1000000];
int maxn=0;
int main()
{
	int flag;
	int A,B,C;
	int i,j,k;
	int K=0;
	fin>>n>>m;
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			f[i][j]=9999999;
	for(i=1;i<=m;i++)
	{
		fin>>A>>B>>C;
		f[A][B]=C;
		f[B][A]=C;
		a[A][B]=1;
		a[B][A]=1;
	}
	for(i=0;i<n;i++)
		f[i][i]=0;
	for(k=0;k<n;k++)
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
			{	if(f[i][j]>f[i][k]+f[k][j])
					f[i][j]=f[i][k]+f[k][j];}//floyd求任意两点之间的最短路
	for(i=0;i<n;i++)
		for(j=i+1;j<n;j++)
		{
				for(k=0;k<n;k++)
			{
				if(f[i][k]<f[j][k])
					flag=f[i][k];
				else
					flag=f[j][k];
				if(flag>maxn)
					maxn=flag;
			}
		K++;
		ans[K].x=i;
		ans[K].y=j;
		ans[K].z=maxn;
		maxn=0;
		}
	for(i=1;i<=K;i++)
	{
		if(ans[i].z<mini)
		{
			A=ans[i].x;
			B=ans[i].y;
			mini=ans[i].z;
		}
	}
	fout<<A<<' '<<B<<endl;
	return 0;
}