Pagini recente » Cod sursa (job #682791) | Cod sursa (job #1716325) | Cod sursa (job #811340) | Profil BalanoiuAlexandru | Cod sursa (job #1206593)
#include <stdio.h>
int N, D[101][101];
FILE *in, *out;
int main()
{
in = fopen("royfloyd.in", "r");
out = fopen("royfloyd.out", "w");
fscanf(in, "%d", &N);
for(int i = 1; i <= N; i++)
for (int j = 1; j <= N; j++)
fscanf(in, "%d", &D[i][j]);
for(int k = 1; k <= N; k++)
for(int i = 1; i <= N; i++)
for(int j = 1; j <= N; j++){
if (i != j && D[i][k] != 0 && D[k][j] != 0 && (D[i][j] == 0 || D[i][k] + D[k][j] < D[i][j]) )
D[i][j] = D[i][k] + D[k][j];
}
for(int i = 1; i <= N; i++){
for(int j = 1; j <= N; j++)
fprintf(out, "%d ", D[i][j]);
fprintf(out, "\n");
}
fclose(in);
fclose(out);
return 0;
}