记录编号 |
388663 |
评测结果 |
AAAAAAAA |
题目名称 |
双服务点设置 |
最终得分 |
100 |
用户昵称 |
zChengYuan |
是否通过 |
通过 |
代码语言 |
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;
}