Pagini recente » Cod sursa (job #1203980) | Cod sursa (job #1160220) | Cod sursa (job #21357) | Cod sursa (job #115728) | Cod sursa (job #2298383)
#include <bits/stdc++.h>
#define InFile "royfloyd.in"
#define OutFile "royfloyd.out"
#define DMAX 110
using namespace std;
FILE *fin=fopen(InFile,"r");
FILE *fout=fopen(OutFile,"w");
int C[DMAX][DMAX];
int n;
void citire();
void pd();
void afisare();
int main()
{citire();
pd();
afisare();
return 0;
}
void citire()
{int i,j;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{fscanf(fin,"%d",&C[i][j]);
if(i!=j && C[i][j]==0)
C[i][j]=INT_MAX/2;
}
}
void pd()
{int i,j,k;
/*
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(C[i][j]!=INT_MAX/2)
tata[i][j]=i;
*/
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
for(k=1;k<=n;k++)
if(C[j][k]>C[j][i]+C[i][k])
{C[j][k]=C[j][i]+C[i][k];
//tata[j][k]=tata[i][k];
}
}
void afisare()
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
fprintf(fout,"%d ",C[i][j]);
fprintf(fout,"\n");
}
}