Pagini recente » Cod sursa (job #232649) | Cod sursa (job #1732784) | Cod sursa (job #2361846) | Cod sursa (job #1103136) | Cod sursa (job #1184448)
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#define D 1005
int dist[100][100];
void floydWarshall(int N) {
for (int k = 0; k < N; k++) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
int temp = dist[i][k] + dist[k][j];
if (dist[i][j] > temp) {
dist[i][j] = temp;
}
}
}
}
}
void print(int N) {
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
if (dist[i][j] == D) {
cout << 0;
} else {
cout << dist[i][j];
}
if (j < N - 1) {
cout << " ";
}
}
cout << endl;
}
}
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
int N;
cin >> N;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
int x;
cin >> x;
dist[i][j] = x;
}
}
floydWarshall(N);
print(N);
fclose(stdout);
return 0;
}