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