Pagini recente » Cod sursa (job #2632418) | Cod sursa (job #3041636) | Cod sursa (job #2225544) | Cod sursa (job #1719237) | Cod sursa (job #1204051)
#include <cstdio>
#define infinite 1<<20
using namespace std;
FILE *f=fopen("royfloyd.in","r");
FILE *g=fopen("royfloyd.out","w");
int n,i,j,k;
int v[101][101];
int main()
{fscanf(f,"%d",&n);
for (i=1;i<=n;i++) for (j=1;j<=n;j++) {fscanf(f,"%d",&v[i][j]);
if (i!=j&&v[i][j]==0) v[i][j]=infinite;}
for (k=1;k<=n;k++) for (i=1;i<=n;i++) for (j=1;j<=n;j++)
if (v[i][j]>v[i][k]+v[k][j]) v[i][j]=v[i][k]+v[k][j];
for (i=1;i<=n;i++) {for (j=1;j<=n;j++) if (v[i][j]==infinite) fprintf(g,"%0 ");
else fprintf(g,"%d ",v[i][j]);
fprintf(g,"\n");
}
return 0;
}