Warehouse April 22, 2019 http://codepro.lge.com/apply/exam/ZXhfaUhjUkhfMTQ5NTQ5NjY4ODY3NQ==/quiz/cV9RRUxqRl8xNTU0Nzg1OTIzMzg0 Source // Init FOR(i, N){ FOR(j, N){ if (i == j) arDist[i][j] = 0; else arDist[i][j] = INF; } } FOR(i, M){ arDist[A[i]-1][B[i]-1] = D[i]; arDist[B[i]-1][A[i]-1] = D[i]; } // Update with Floyd FOR(k, N){ FOR(i, N){ if (arDist[i][k] == INF) continue; FOR(j, N){ arDist[i][j] = min(arDist[i][j], arDist[i][k]+arDist[k][j]); } } } // Find min worst int minWorst = INF; FOR(k, N){ int worst = 0; FOR(i, N){ if (k==i) continue; int& dist = arDist[k][i]; W_IFNOT(dist > 0); if (dist == INF) continue; W_IFNOT(dist < INF); if (dist > worst) worst = dist; } if (worst==0) continue; if (worst < minWorst) minWorst = worst; } ans = minWorst; GitHub Warehouse Share Share on Facebook Tweet Share on Reddit Email Tags cpp floyd-warshall