n, m = map(int, input().split()) dist = [[float('inf')] * n for _ inrange(n)] for i inrange(n): dist[i][i] = 0 for _ inrange(m): u, v, w = map(int, input().split()) dist[u-1][v-1] = w dist[v-1][u-1] = w for k inrange(n): for i inrange(n): for j inrange(n): dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]) for row in dist: print(' '.join(map(str, row)))
n, m, s = map(int, input().split()) edges = [[] for _ inrange(n+1)] dist = [float('inf')] * (n+1) dist[s] = 0 for _ inrange(m): u, v, w = map(int, input().split()) edges[u].append((v, w)) queue = [(0, s)] while queue: _, u = heapq.heappop(queue) for v, w in edges[u]: if dist[u] + w < dist[v]: dist[v] = dist[u] + w heapq.heappush(queue, (dist[v], v)) print(' '.join(map(str, dist[1:])))
intmain(){ int n, m; cin >> n >> m; for(int i = 0; i < m; i++) { int u, v; cin >> u >> v; edge[u].push_back(v); edge[v].push_back(u); } bfs(); for(int i = 1; i <= n; i++) { cout << cnt[i] << endl; } return0; }
intmain(){ int n, m; cin >> n >> m; for(int i = 0; i < m; i++) { int u, v; cin >> u >> v; edge[u].push_back(v); edge[v].push_back(u); } bfs(); for(int i = 1; i <= n; i++) { cout << cnt[i] << endl; } return0; }