Pagini recente » Rating Radu Stoican (radu.stoican) | Diferente pentru utilizator/robertpoe intre reviziile 39 si 40 | Diferente pentru problema/aliniere intre reviziile 61 si 60 | Diferente pentru blog/finala-algoritmiada-2017 intre reviziile 8 si 4 | Cod sursa (job #2575021)
#include <fstream>
using namespace std;
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
#define MAXN 105
int n, a[MAXN][MAXN];
void roy_floyd()
{
for(int k = 1 ; k <= n ; k ++)
for(int i = 1 ; i <= n ; i ++)
for(int j = 1 ; j <= n ; j ++)
if(a[i][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]) && i != j)
a[i][j] = a[i][k] + a[k][j];
}
int main() {
cin >> n;
for(int i = 1; i <= n ; i++)
for(int j = 1; j <= n ; j++)
cin >> a[i][j];
roy_floyd();
for(int i = 1; i <= n ; i++, cout <<"\n")
for(int j = 1; j <= n ; j++)
cout << a[i][j] << " ";
return 0;
}