Pagini recente » Cod sursa (job #1758811) | Cod sursa (job #1502360) | Cod sursa (job #2603871) | Cod sursa (job #338557) | Cod sursa (job #1968334)
#include<cstdio>
#define N_MAX 100
#define oo 0x7fffffff
using namespace std;
int C[N_MAX+1][N_MAX+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 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(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,"%d ",C[i][j]);
else fprintf(fout,"0 ");
fprintf(fout,"\n");
}
fclose(fout);
}
int main()
{
Read();
roy_floyd();
Write();
return 0;
}