Pagini recente » Cod sursa (job #1434982) | voluntari | Cod sursa (job #2010412) | Monitorul de evaluare | Cod sursa (job #1554791)
#include <fstream>
using namespace std ;
ifstream f ("royfloyd.in") ;
ofstream g ("royfloyd.out") ;
int a[105][105] , n ;
void citire()
{
f >> n ;
for ( int i = 1 ; i <= n ; ++i )
for ( int j = 1 ; j <= n ; ++j )
f >> a[i][j] ;
}
void roy_floyd()
{
for ( int k = 1 ; k <= n ; ++k )
for ( int i = 1 ; i <= n ; ++i )
for ( int j = 1 ; 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] ;
}
void afis()
{
for ( int i = 1 ; i <= n ; ++i )
{
for ( int j = 1 ; j <= n ; ++j )
g << a[i][j] << " " ;
g << "\n" ;
}
}
int main()
{
citire();
roy_floyd();
afis();
return 0;
}