#include <bits/stdc++.h> using namespace std; const int INF = 1e9; int main() { int N = 5; vector<vector<int>> adj_matrix(N, vector<int>(N, 0)); // Create Adjacency Matrix adj_matrix[0][1] = 5; adj_matrix[0][3] = -3; adj_matrix[1][2] = 2; adj_matrix[2][4] = 2; adj_matrix[3][1] = 6; adj_matrix[3][4] = 12; // Create dist array auto dist = adj_matrix; for (int i=0; i<N; i++) { for (int j=0; j<N; j++) { if (dist[i][j] == 0 && i != j) dist[i][j] = INF; } } // Execute Floyd-Warshall Algorithm for (int mid=0; mid<N; mid++) { for (int start=0; start<N; start++) { for (int end=0; end<N; end++) { if (dist[start][mid] == INF || dist[mid][end] == INF) continue; dist[start][end] = min(dist[start][end], dist[start][mid]+dist[mid][end]); } } } // Print result for (int i=0; i<N; i++) { for (int j=0; j<N; j++) { if (dist[i][j] == INF) cout << "∞" << ' '; else cout << dist[i][j] << ' '; } cout << '\n'; } return 0; }