Pagini recente » Cod sursa (job #188193) | Cod sursa (job #189778) | Cod sursa (job #474811) | Cod sursa (job #863786) | Cod sursa (job #478367)
Cod sursa(job #478367)
#include <stdio.h>
#include <stdlib.h>
#define INF 100000
int main()
{
int n, **mp, i, j, k, aux;
FILE *f, *g;
f = fopen("royfloyd.in", "r");
g = fopen("royfloyd.out", "w");
fscanf(f, "%d", &n);
mp = (int **)malloc(sizeof(int *) * n);
for (i = 0; i < n; i++)
mp[i] = (int *)malloc(sizeof(int) * n);
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
fscanf(f, "%d", &mp[i][j]);
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
for (k = 0; k < n; k++)
{
aux = mp[i][k] + mp[k][j];
if ((mp[i][j] > aux || (mp[i][j] == 0 && i != j)) && mp[i][k] != 0 && mp[k][j] != 0)
mp[i][j] = aux;
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
fprintf(g, "%d ", mp[i][j]);
fprintf(g, "\n");
}
fclose(f);
fclose(g);
return 0;
}