Lang:G++
Edit12345678910111213141516171819202122232425262728#include <cstring>#include <cstdio>#include <iostream>#include <algorithm>using namespace std;int const N = 1e2 + 10;int dis[N][N], n, m, u, v, d;int main() {scanf("%d%d", &n, &m);for (int i = 1; i <= n; i++) {dis[i][i] = 0;for (int j = i + 1; j <= n; j++)dis[i][j] = dis[j][i] = 1e9;}for (int i = 0; i < m; i++) {scanf("%d%d%d", &u, &v, &d);dis[u][v] = dis[v][u] = dis[u][v] ? min(dis[u][v], d) : d;}for (int k = 1; k <= n; k++)for (int i = 1; i <= n; i++)for (int j = i + 1; j <= n; j++)if ((d = dis[i][k] + dis[k][j]) < dis[i][j])dis[i][j] = dis[j][i] = d;for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)printf("%d%c", dis[i][j], (j == n ? '\n' : ' '));return 0;}