#include #include #include using namespace std; int N,M; int getDist(vector> C) { int MaxD=0; bool loop=true; while (loop){ loop =false; for (int i = 0; i < N; i++){ // 経由する頂点 for (int j = 0; j < N; j++){ // 開始頂点 if (i==j){ continue; } for (int k = 0; k < N; k++){ // 終端 if (i==k || j==k){ continue; } if (C[j][k]==0){ if (C[j][i]>0 && C[i][k]>0){ C[j][k] = C[j][i] + C[i][k]; if (MaxD>N>>M; vector> C1(N,vector(N)); int a,b,c; for (i=0;i>a>>b>>c; C1[a-1][b-1]=c; C1[b-1][a-1]=c; } int MaxD=getDist(C1); cout<