Pagini recente » Cod sursa (job #116065) | Cod sursa (job #1722377) | Cod sursa (job #2716825) | Cod sursa (job #2482047) | Cod sursa (job #2964878)
#include <bits/stdc++.h>
using namespace std;
const int N = 1e2 + 10;
int n;
int c[N][N];
int main()
{
freopen("royfloyd.in" , "r" , stdin) , freopen("royfloyd.out" , "w" , stdout);
int i , j , t;
cin >> n;
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= n ; j++)
cin >> c[i][j];
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= n ; j++)
if(c[i][j] == 0)
c[i][j] = INT_MAX;
for(t = 1 ; t <= n ; t++)
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= n ; j++)
if(i != j)
if(c[i][t] != INT_MAX && c[t][j] != INT_MAX)
c[i][j] = min(c[i][j] , c[i][t] + c[t][j]);
for(i = 1 ; i <= n ; i++)
for(j = 1 ; j <= n ; j++)
{
if(c[i][j] == INT_MAX) cout << 0;
else cout << c[i][j];
cout << ' ';
if(j == n) cout << '\n';
}
return 0;
}