Pagini recente » Cod sursa (job #182076) | Cod sursa (job #1620185) | Cod sursa (job #1596431) | Cod sursa (job #2907906) | Cod sursa (job #574138)
Cod sursa(job #574138)
#include <stdio.h>
#include <malloc.h>
int main()
{
FILE *f,*g;
int k,i,j,n,**m,**m2;
f=fopen("royfloyd.in", "r");
g=fopen("royfloyd.out", "w");
fscanf(f,"%d",&n);
m=(int **)malloc(n*sizeof(int *));
m2=(int **)malloc(n*sizeof(int *));
for(i=0;i<n;i++)
{
m[i]=(int *)malloc(n*sizeof(int));
m2[i]=(int *)malloc(n*sizeof(int));
for(j=0;j<n;j++)
{
fscanf(f,"%d",&m[i][j]);
m2[i][j]=m[i][j];
}
}
for(k=0;k<n;k++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if((m[i][k]*m[k][j]!=0)&&(m[i][k]+m[k][j]<m[i][j]))
m[i][j]=m[i][k]+m[k][j];
for(i=0;i<n;i++,fprintf(g,"\n"))
for(j=0;j<n;j++)
if(m2[i][j]==0)
fprintf(g,"0 ");
else
fprintf(g,"%d ",m[i][j]);
fclose(f);
return 0;
}