Pagini recente » Cod sursa (job #2134234) | Cod sursa (job #319104) | Cod sursa (job #1724017) | Cod sursa (job #923652) | Cod sursa (job #2180926)
#include <cstdio>
#include <iostream>
#define INF 2000000000
using namespace std;
int m[101][101],p[101][101];
int main()
{
FILE *fin=fopen ("royfloyd.in","r");
FILE *fout=fopen ("royfloyd.out","w");
int n,i,j,k;
fscanf (fin,"%d",&n);
for (i=1;i<=n;i++){
for (j=1;j<=n;j++){
fscanf (fin,"%d",&m[i][j]);
if (m[i][j]!=0)
p[i][j]=m[i][j];
else p[i][j]=INF;
}
}
for (k=1;k<=n;k++){
for (i=1;i<=n;i++){
for (j=1;j<=n;j++){
if (k!=i && k!=j && i!=j && p[i][k]!=INF && p[k][j]!=INF)
p[i][j]=min(p[i][j],p[i][k]+p[k][j]);
}
}
}
for (i=1;i<=n;i++){
for (j=1;j<=n;j++){
if (i==j)
p[i][j]=0;
fprintf (fout,"%d ",p[i][j]);
}
fprintf (fout,"\n");
}
return 0;
}