Pagini recente » Cod sursa (job #167414) | Cod sursa (job #315431) | Cod sursa (job #1583432) | Cod sursa (job #962914) | Cod sursa (job #1991520)
#include<cstdio>
#define MAX_N 100
#define oo 0x7fffffff
using namespace std;
int C[MAX_N+1][MAX_N+1], n;
void Read()
{
FILE *fin = fopen("royfloyd.in","r");
fscanf(fin,"%d",&n);
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
fscanf(fin,"%d",&C[i][j]);
if(!C[i][j])
C[i][j] = oo;
}
}
fclose(fin);
}
void FloydWarshall()
{
int k, i, j;
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(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];
}
void Write()
{
FILE *fout = fopen("royfloyd.out","w");
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
if(C[i][j] == oo)
fprintf(fout,"0 ");
else fprintf(fout,"%d ",C[i][j]);
fprintf(fout,"\n");
}
}
int main()
{
Read();
FloydWarshall();
Write();
return 0;
}