Pagini recente » Cod sursa (job #2050957) | Cod sursa (job #564830) | Cod sursa (job #477881) | Cod sursa (job #2828862) | Cod sursa (job #695751)
Cod sursa(job #695751)
#include <stdio.h>
FILE * fin;
FILE * fout;
long cost[101][101];
long n;
//-----------------------------------
void citire()
{
fin = fopen("royfloyd.in","r");
fout = fopen("royfloyd.out","w");
fscanf(fin,"%d",&n);
for (int i = 1; i<=n; i++)
{
for (int j = 1 ; j<=n ; j++)
{
fscanf(fin,"%d",&cost[i][j]);
}
}
fclose(fin);
}
//-----------------------------------
void roy_floyd()
{
int k,i,j;
for (k=1; k<=n; k++)
{
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
{
if ((cost[i][k]!=0)&&(cost[k][j]!=0)&&(cost[i][j]>cost[i][k]+cost[k][j]))
//if ((cost[i][j]>cost[i][k]+cost[k][j]))
{
cost[i][j]=cost[i][k]+cost[k][j];
}
}
}
}
}
//-----------------------------------
void afisare()
{
int i,j;
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
{
fprintf(fout,"%d ",cost[i][j]);
}
fprintf(fout,"\n");
}
}
//-----------------------------------
int main()
{
citire();
roy_floyd();
afisare();
fclose(fout);
return 0;
}