Pagini recente » Cod sursa (job #3121681) | Cod sursa (job #589368) | Cod sursa (job #462082) | Cod sursa (job #2173394) | Cod sursa (job #478373)
Cod sursa(job #478373)
#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 (k = 0; k < n; k++)
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
{
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;
}