Pagini recente » Cod sursa (job #1396751) | Cod sursa (job #1602356) | Cod sursa (job #763206) | Cod sursa (job #731032) | Cod sursa (job #927640)
Cod sursa(job #927640)
#include<stdio.h>
#include<stdlib.h>
int n, a[105][105];
void roy_floyd()
{
int i, j, k;
for (k = 0; k < n; k++)
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
if (a[i][k] != 0 && a[k][j] != 0)
if((a[i][j] > a[i][k] + a[k][j] || a[i][j] == 0) && i != j) a[i][j] = a[i][k] + a[k][j];
}
int main()
{
FILE *in,*out;
in = fopen("royfloyd.in","r");
out = fopen("royfloyd.out","w");
int i, j;
fscanf(in,"%d",&n);
for (i = 0; i < n; i++)
for (j = 0; j < n; j++)
fscanf(in,"%d",&a[i][j]);
roy_floyd();
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
fprintf(out,"%d ",a[i][j]);
fprintf(out,"\n");
}
fclose(in);
fclose(out);
return 0;
}