Pagini recente » Cod sursa (job #2626991) | Cod sursa (job #2543292) | Cod sursa (job #2983788) | Cod sursa (job #3233285) | Cod sursa (job #1408273)
#include<bits/stdc++.h>
#define Nmax 105
#define INF 1 << 30
using namespace std;
int Cost[Nmax][Nmax], N;
void Read()
{
freopen("royfloyd.in", "r", stdin);
scanf("%d", &N);
for(int i = 1; i <= N; ++ i)
for(int j = 1; j <= N; ++ j)
scanf("%d", &Cost[i][j]);
}
void Write()
{
freopen("royfloyd.out", "w", stdout);
for(int i = 1; i <= N; printf("\n"), ++ i)
for(int j = 1; j <= N; ++ j)
printf("%d ", Cost[i][j]);
}
void Do_Roy_Floyd()
{
for(int k = 1; k <= N; ++ k)
for(int i = 1; i <= N; ++ i)
for(int j = 1; j <= N; ++ j)
if(Cost[i][k] && Cost[k][j] && (Cost[i][j] > Cost[i][k] + Cost[k][j] || (!Cost[i][j] && i != j)))
Cost[i][j] = Cost[i][k] + Cost[k][j];
}
int main()
{
Read();
Do_Roy_Floyd();
Write();
return 0;
}