Pagini recente » Cod sursa (job #272229) | Cod sursa (job #2098304) | Cod sursa (job #290632) | Cod sursa (job #1411120) | Cod sursa (job #145494)
Cod sursa(job #145494)
#include<stdio.h>
#define min(a,b) ((a)<(b)?(a):(b))
FILE*f=fopen("royfloyd.in","r");
FILE*g=fopen("royfloyd.out","w");
int n,d[104][104];
void read()
{
fscanf(f,"%d",&n);
int i,j;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
{
fscanf(f,"%d",&d[i][j]);
}
}
void RoyFloyd()
{
int i,j,x,y,z;
for(z=1;z<=n;++z)
for(x=1;x<=n;++x)
for(y=1;y<=n;++y)
if (d[x][z] && d[z][y] && (d[x][y] > d[x][z] + d[z][y] || !d[x][y]) && x != y) d[x][y]=d[x][z]+d[z][y];
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
{
fprintf(g,"%d ",d[i][j]);
}
fprintf(g,"\n");
}
}
int main()
{
read();
RoyFloyd();
return 0;
}