Pagini recente » Cod sursa (job #2651027) | Cod sursa (job #2773242) | Cod sursa (job #1969341) | Cod sursa (job #3205497) | Cod sursa (job #2193681)
#include <fstream>
#include <vector>
using namespace std;
int main()
{
int n = 5;
ifstream input ("royfloyd.in", ifstream::in);
ofstream output ("royfloyd.out", ofstream::out);
input >> n;
vector<vector<size_t>> matrix(n, vector<size_t> (n) );
for( auto &i : matrix )
for( auto &j : i )
input >> j;
for( size_t middle = n-1; middle ; --middle )
for( size_t x = n-1; x ; --x )
for( size_t y = n-1; y ; --y )
if( matrix[x][middle] && matrix[middle][y] )
if( matrix[x][middle] + matrix[middle][y] < matrix[x][y] || ( x != y && matrix[x][y] == 0 ) )
matrix[x][y] = matrix[x][middle] + matrix[middle][y] ;
for( auto &i : matrix ){
for( auto &j : i )
output << j << " ";
output << '\n';
}
return 0;
}