Pagini recente » Cod sursa (job #755477) | Cod sursa (job #2415638) | Cod sursa (job #2225570) | Cod sursa (job #152255) | Cod sursa (job #1846645)
#include <cstdio>
using namespace std;
int main()
{
FILE *f=fopen("royfloyd.in","r");
int n,x[101][101];
fscanf(f,"%d",&n);
for(int i=1; i<=n; ++i)
for(int j=1; j<=n; ++j)
{
fscanf(f,"%d",&x[i][j]);
if((i-j)&&(!x[i][j]))x[i][j]=1000005;
}
int ok=1;
while(ok)
{
ok=0;
for(int trans=1;trans<=n;++trans)
for(int plec=1;plec<=n;++plec)
for(int ajng=1;ajng<=n;++ajng)
{
if(x[plec][trans]+x[trans][ajng]<x[plec][ajng])x[plec][ajng]=x[plec][trans]+x[trans][ajng],ok=1;
}
}
fclose(f);
f=fopen("royfloyd.out","w");
for(int i=1; i<=n; ++i)
{
for(int j=1; j<=n; ++j)
if((i-j)&&(x[i][j]==1000005))fprintf (f," 0");
else fprintf(f,"%d ",x[i][j]);
fprintf(f,"\n");
}
return 0;
}