Flod

#include 

using namespace std;
#define maxn 105
#define INF 10000000
int n;
int d[maxn][maxn];

void init()
{
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
        d[i][j] = (i==j ? 0 : INF);
}

int main()
{
    int Max = 0;
    cin>>n;
    init();
    int  u, v, dist;
    for(int i=1; i>u>>v>>dist;
        d[u][v] = d[v][u] = dist;
    }
    for(int k=1; k<=n; k++)
        for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
        d[i][j] = min(d[i][j], d[i][k]+d[k][j]);

    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
    {
        if(d[i][j] != INF)
            Max = max(Max, d[i][j]);
    }
    cout<<10*Max+(Max+1)*Max/2<

你可能感兴趣的:(水题,最短路)