Pagini recente » Cod sursa (job #2709759) | Cod sursa (job #1027688) | Cod sursa (job #1575858) | Cod sursa (job #81493) | Cod sursa (job #1884227)
#include <fstream>
#define NMAX 101
using namespace std;
int n, a[NMAX][NMAX];
void Citire()
{
ifstream fin("royfloyd.in");
fin >> n;
for ( int i = 0 ; i < n ; ++i )
for ( int j = 0 ; j < n ; ++j )
fin >> a[i][j];
fin.close();
}
void Afisare()
{
ofstream fout("royfloyd.out");
for( int i = 0 ; i < n ; ++i )
{
for ( int j = 0 ; j < n ; ++j )
fout << a[i][j] << " ";
fout << '\n';
}
fout.close();
}
void Rezolvare()
{
for( int k = 0; k < n; ++k ) // verific daca trecand prin k se poate optimiza costul de la i la j
for( int i = 0; i < n; ++i )
for( int j = 0; j < n; ++j ) //daca putem actualiza
if( a[i][k] && a[k][j] && i != j && (a[i][j] > a[i][k] + a[k][j] || !a[i][j] ) )
a[i][j] = a[i][k] + a[k][j];
}
int main()
{
Citire();
Rezolvare();
Afisare();
return 0;
}