Pagini recente » Cod sursa (job #244703) | Cod sursa (job #895474) | Cod sursa (job #1140989) | Cod sursa (job #2928294) | Cod sursa (job #1192390)
#include <cstdio>
using namespace std;
#define NMAX 500
int A[NMAX][NMAX];
int i,j,N;
void Roy_Floyd()
{
int i,j,k;
for (k=1;k<=N;++k)
for (i=1;i<=N;++i)
for (j=1;j<=N;++j)
{
if (i==j) continue;
if (!A[i][k] || !A[k][j]) continue;
if (A[i][j]>0 && A[i][j]<=A[i][k]+A[k][j]) continue;
A[i][j]=A[i][k]+A[k][j];
}
}
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&N);
for (i=1;i<=N;++i)
for (j=1;j<=N;++j)
scanf("%d",&A[i][j]);
Roy_Floyd();
for (i=1;i<=N;++i)
for (j=1;j<=N;++j)
(j<N) ? printf("%d ",A[i][j]) : printf("%d\n",A[i][j]);
return 0;
}