记录编号 388663 评测结果 AAAAAAAA
题目名称 双服务点设置 最终得分 100
用户昵称 GravatarzChengYuan 是否通过 通过
代码语言 C++ 运行时间 0.014 s
提交时间 2017-03-29 17:12:20 内存使用 0.37 MiB
显示代码纯文本
#include <fstream>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
ifstream fin("djsb.in");
ofstream fout("djsb.out");
const int INF=200000;
int D[120][120];
int d[120];
int n,m;
struct UN
{
	int d;int u;
	bool operator <(const UN &x)const
	{
		return d<x.d;
	}
};
int main()
{
	fin>>n>>m;
	for(int i=0;i<n;++i)
	{
		for(int j=0;j<n;++j)
		{
			D[i][j]=(i==j?0:INF);
		}
	}
	int p1,p2,dis;
	for(int i=0;i<m;++i)
	{
		fin>>p1>>p2>>dis;
		D[p1][p2]=D[p2][p1]=dis;
	}
	for(int k=0;k<n;++k)
	{	
		for(int i=0;i<n;++i)
			for(int j=0;j<n;++j)
			{
				D[i][j]=min(D[i][j],D[i][k]+D[k][j]);
			}
	}
	int ri=0,rj=0,maxs=INF;
	int temp=0;
	for(int i=n-1;i>=0;--i)
	{
		for(int j=n-1;j>=0;--j)
		{
			for(int p=0;p<n;++p)
			{
				d[p]=min(D[p][i],D[p][j]);
			}
			temp=*max_element(d,d+n);
			if(temp<=maxs&&i!=j)
			{
				maxs=temp;
				ri=i;rj=j;
			}
		}
	}
	fout<<ri<<' '<<rj;
}