题解:……
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std;
#define INF 0x3f3f3f3f
int n,sum=INF;
int x,y,z;
int x1,y1;
int w[105][105];
void init()
{
memset(w,0x3f,sizeof(w));
cin>>n;
for(int i=1;i<=n;i++) w[i][i]=0;
while(scanf("%d%d%d",&x,&y,&z)!=EOF&&x)
w[x][y]=w[y][x]=z;
}
void floyed()
{
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
w[i][j]=min(w[i][j],w[i][k]+w[k][j]);
}
int main()
{
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)//枚举两个蜘蛛位置z
{
int maxn=-INF;
for(int k=1;k<=n;k++)
maxn=max(maxn,min(w[i][k],w[j][k]));//最坏情况
if(maxn<sum&&i!=j)//找最优
{
sum=maxn;
x1=i,y1=j;
}
}
cout<<x1<<" "<<y1;
return 0;
}