Pagini recente » Cod sursa (job #2348945) | Cod sursa (job #3246181) | Cod sursa (job #2279656) | Cod sursa (job #2753150) | Cod sursa (job #1292084)
#include <stdio.h>
int N;
int C[100][100];
void floyd_warshall(int C[][100], int N)
{
int i, j, k;
for (k = 0; k < N; k++) {
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
if (i == j)
continue;
if (!C[i][k] || !C[k][j])
continue;
if (C[i][j] > C[i][k] + C[k][j] || !C[i][j]) {
C[i][j] = C[i][k] + C[k][j];
}
}
}
}
}
void print_result(int C[][100], int N)
{
int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%d ", C[i][j]);
}
printf("\n");
}
}
int main()
{
int i, j;
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
scanf("%d", &N);
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
scanf("%d", &C[i][j]);
}
}
floyd_warshall(C, N);
print_result(C, N);
return 0;
}