Pagini recente » Cod sursa (job #1933407) | Cod sursa (job #332659) | Cod sursa (job #1797402) | Cod sursa (job #2781357) | Cod sursa (job #2193687)
#include <fstream>
#include <vector>
using namespace std;
int main()
{
size_t 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 = 0; middle < n ; ++middle )
for( size_t x = 0; x < n; ++x )
for( size_t y = 0; y < n; ++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;
}