Pagini recente » Cod sursa (job #1355006) | Cod sursa (job #7373) | Cod sursa (job #96186) | Borderou de evaluare (job #889968) | Cod sursa (job #976366)
Cod sursa(job #976366)
#include<stdio.h>
#include<stdlib.h>
int main() {
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out", "w", stdout);
int i, j, k, n;
int **m;
scanf("%d", &n);
m = malloc(n * sizeof(int*));
for (i = 0; i < n; i++) {
m[i] = malloc(n * sizeof(int));
for (j = 0; j < n; j++)
scanf("%d", &m[i][j]);
}
for(k = 0; k < n; k++)
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
if (i != j && m[i][k] && m[k][j] && (m[i][j] > m[i][k] + m[k][j]))
m[i][j] = m[i][k] + m[k][j];
for(i = 0; i < n; i++) {
for(j = 0; j < n; j++)
printf("%d ", m[i][j]);
printf("\n");
free(m[i]);
}
free(m);
return 0;
}