Pagini recente » Cod sursa (job #63925) | Cod sursa (job #163362) | Cod sursa (job #1654300) | Cod sursa (job #2874844) | Cod sursa (job #858255)
Cod sursa(job #858255)
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <climits>
using namespace std;
#define INF INT_MAX
int A[105][105];
int 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]);
for (int k = 1 ; k <= N ; ++k)
for (int i = 1 ; i <= N ; ++i)
for (int j = 1 ; j <= N ; ++j)
{
if (i == k || j == k || i == j)
continue;
if (!A[i][k] || !A[k][j])
continue;
if (!A[i][j])
{
A[i][j] = A[i][k] + A[k][j];
continue;
}
A[i][j] = min (A[i][k] + A[k][j] , A[i][j]);
}
for (int i = 1 ; i <= N ; ++i)
{
for (int j = 1 ; j <= N ; ++j)
printf ("%d " , A[i][j]);
printf ("\n");
}
return 0;
}