Pagini recente » Cod sursa (job #368468) | Cod sursa (job #2085489) | Rating Popescu Dorel (popescu__dorel) | Cod sursa (job #743569) | Cod sursa (job #1723604)
#include <cstdio>
#include <cstring>
#include <algorithm>
const int INF = 0x3f3f3f3f;
const int Nmax = 200;
int A[Nmax][Nmax],N;
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&N);
for(int i = 1; i <= N; ++i)
for(int j = 1; j <= N; ++j)
{
scanf("%d",&A[i][j]);
if(A[i][j] == 0)
A[i][j] = INF;
}
for(int k = 1; k <= N; ++k)
for(int i = 1; i <= N; ++i)
if(i != k)
for(int j = 1; j <= N; ++j)
if(i != j && j != k)
A[i][j] = std::min(A[i][k] + A[k][j], A[i][j]);
for(int i = 1; i <= N; ++i)
{
for(int j = 1; j <= N; ++j)
if(A[i][j] < INF)
printf("%d ",A[i][j]);
else
printf("0 ");
printf("\n");
}
return 0;
}