7-6 Harry Potter's Exam (25 分)
#include <iostream>
#include<bits/stdc++.h>
using namespace std;
const int inf  =0x3f3f3f3f;
int tu[600][600];
int main()
{
    int n,m;
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=n;j++){
            tu[i][j] =  inf;
        }
        tu[i][i] = 0;
    }
    for(int i=1;i<=m;i++){
        int u,v,w;
        cin>>u>>v>>w;
        tu[u][v]  =tu[v][u] = min(tu[u][v],w);
    }
    for(int k=1;k<=n;k++)
    for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++){
            
               if(k==i||k==j)continue;
                if(tu[i][j]>tu[i][k]+tu[k][j]&&tu[i][k]!=inf&&tu[k][j]!=inf){
                    tu[i][j] = tu[i][k]+tu[k][j];
                }
            
        }
    
    int ans =inf,id=-1;
    for(int i=1;i<=n;i++){
        int f  =1;
        int ans1 =0;
        for(int j=1;j<=n;j++){
              if(tu[i][j]==inf){
                f = 0;
                break;
              }
              ans1 = max(ans1,tu[i][j]);
        }
       // cout<<ans1<<endl;
        if(f&&ans1<ans){
            ans = ans1;
            id = i;
        }
    }
    //cout<<endl;
    if(id==-1)printf("0\n");
    else{
        cout<<id<<" "<<ans<<endl;
    }
    return 0;
}