Pagini recente » Cod sursa (job #2533132) | Cod sursa (job #1721415) | Cod sursa (job #2678371) | Cod sursa (job #2242141) | Cod sursa (job #150317)
Cod sursa(job #150317)
#include "cstdio"
#define inf 1001
#define fin "royfloyd.in"
#define fout "royfloyd.out"
using namespace std;
int ad[126][126],n,m;
void citire()
{
freopen(fin,"r",stdin);
scanf("%d",&n);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
scanf("%d",&ad[i][j]);
fclose(stdin);
}
void roy_floyd()
{
for (int k=1;k<=n;k++)
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
if (ad[i][k] && ad[k][j] && (ad[i][j] > ad[i][k]+ad[k][j] || !ad[i][j] && i!=j) && i!=j)
ad[i][j]=ad[i][k]+ad[k][j];
}
void scrie(int ad[126][126])
{
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++)
printf("%d ",ad[i][j]);
printf("\n");
}
}
void finish()
{
freopen(fout,"w",stdout);
scrie(ad);
fclose(stdout);
}
int main()
{
citire();
roy_floyd();
finish();
return 0;
}