Pagini recente » Cod sursa (job #2246135) | Cod sursa (job #740459) | Cod sursa (job #2548077) | Cod sursa (job #2860860) | Cod sursa (job #2780734)
#include <bits/stdc++.h>
#define NMAX 103
#define INF 1001
using namespace std;
int dp[NMAX][NMAX];
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
int n;
cin >> n;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++) {
cin >> dp[i][j];
if(dp[i][j] == 0)
dp[i][j] = INF;
}
for(int k = 1; k <= n; k++)
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
if(i != j && dp[i][k] != INF && dp[k][j] != INF)
dp[i][j] = min(dp[i][j],dp[i][k] + dp[k][j] );
for(int i = 1; i <= n; i++) {
for(int j = 1; j <= n; j++)
if(dp[i][j] == INF)cout << 0 << ' ';
else cout << dp[i][j] << ' ';
cout << '\n';
}
return 0;
}