Pagini recente » Cod sursa (job #1444066) | Cod sursa (job #495891) | Arhipelag2 | Monitorul de evaluare | Cod sursa (job #144464)
Cod sursa(job #144464)
# include <stdio.h>
FILE*f=fopen("royfloyd.in","r");
FILE*g=fopen("royfloyd.out","w");
long n,d[101][101],b;
void writedata();
void readdata();
void init();
void roy_floyd();
void readdata()
{
long i,j;
fscanf(f,"%ld",&n);
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
{
fscanf(f,"%ld",&b);
if (i==j) d[i][j]=0;
else
if (b==0&&i!=j) d[i][j]=600000;
else d[i][j]=b;
}
}
void roy_floyd()
{
long i,j,k;
for (k=1; k<=n; k++)
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
if (i!=j)
if (d[i][j]>d[i][k]+d[k][j])
{
d[i][j]=d[i][k]+d[k][j];
}
}
void writedata()
{
long i,j;
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
fprintf(g,"%ld ",d[i][j]);
fprintf(g,"\n");
}
}
int main()
{
readdata();
roy_floyd();
writedata();
return 0;
}