Pagini recente » Diferente pentru home intre reviziile 88 si 89 | Monitorul de evaluare | Istoria paginii utilizator/nikolapesic2802 | Cod sursa (job #187072) | Cod sursa (job #2078244)
#include <bits/stdc++.h>
using namespace std;
const int mxn = 100 + 2;
int n;
int a[ mxn ][ mxn ];
void royfloyd(){
for(int k = 0; k < n; k++)
for(int i = 0; i < n; i++)
for(int j = 0; 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()
{
ios_base::sync_with_stdio( false );
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
cin>> n;
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
cin>> a[ i ][ j ];
royfloyd();
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++)
cout<< a[ i ][ j ] << ' ';
cout<< '\n';
}
return 0;
}