Pagini recente » Cod sursa (job #1109510) | Borderou de evaluare (job #1058848) | Cod sursa (job #967613) | Cod sursa (job #988365) | Cod sursa (job #1621493)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int d[102][102], n;
/*void drum( int x, int y )
{
if ( x != y )
drum(x, pred[x][y] );
out << y <<' ';
}*/
int main()
{
int i, j, k;
in >> n;
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= n; j++ )
in >> d[i][j];
for ( k = 1; k <= n; k++ )
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= n; j++ )
if ( d[i][k] + d[k][j] < d[i][j] && d[i][k] != 0 && d[k][j] != 0 )
{
d[i][j] = d[i][k] + d[k][j];
//pred[i][k] = pred[k][j];
///pred[i][j] = penultimul nod de cost minim pe drumul de la i la j
}
for ( i = 1; i <= n; i++ )
{
for ( j = 1; j <= n; j++ )
out << d[i][j]<<' ';
out <<'\n';
}
return 0;
}