#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <string.h>
#define INF 0x3f3f3f3f
using namespace std;
int dis[102],map[110][110];
int n,m;
void floyd(){
int i,k,j;
for(i=1;i<=n;i++){
map[i][i]=0;
}
for(k=1;k<=n;k++){
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if((map[i][k]!=INF||map[k][j]!=INF)&&map[i][j]>map[i][k]+map[k][j]){
map[i][j]=map[i][k]+map[k][j];
}
}
}
}
}
int main(){
int i,flag=0;
cin>>n>>m;
int a,b,x;
memset(map,INF,sizeof(map));
//memset(dis,INF,sizeof(dis));
for(i=0;i<m;i++)
{
cin>>a>>b>>x;
map[a][b]=map[b][a]=x;
}
int maxx=0,k;
floyd();
for(i=1;i<=n;i++){
maxx=0;
for(int j=1;j<=n;j++){
if(map[i][j]>maxx){
maxx=map[i][j];
}
}
dis[i]=maxx;
}
maxx=INF;
for(i=1;i<=n;i++) {
if(dis[i]==maxx) ++flag;
//cout<<dis[i]<<" ";
else if(dis[i]<maxx){
maxx=dis[i];
k=i;
}
}
if(flag==n) cout<<0<<endl;
else
cout<<k<<" "<<dis[k]<<endl;
return 0;
}
哈利·波特的考试之Floyd算法
最新推荐文章于 2021-02-27 20:19:05 发布