Pagini recente » Cod sursa (job #759852) | Cod sursa (job #309966) | Cod sursa (job #1751514) | Cod sursa (job #2787466) | Cod sursa (job #2001152)
#include<cstdio>
#define MAX_N 100
#define oo 0x7fffffff
using namespace std;
int C[MAX_N + 1][MAX_N + 1], n;
void FloydWarshall()
{
for(int k=1; k<=n; k++)
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(C[i][k] != oo && C[k][j] != oo && i != j &&
C[i][j] > C[i][k] + C[k][j])
C[i][j] = C[i][k] + C[k][j];
}
int main()
{
int i, j;
FILE *fin, *fout;
fin = fopen("royfloyd.in","r");
fout = fopen("royfloyd.out","w");
fscanf(fin,"%d",&n);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
fscanf(fin,"%d",&C[i][j]);
if(!C[i][j])
C[i][j] = oo;
}
FloydWarshall();
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
if(C[i][j] != oo)
fprintf(fout,"%d ",C[i][j]);
else fprintf(fout,"0 ");
fprintf(fout,"\n");
}
fclose(fin);
fclose(fout);
return 0;
}