Pagini recente » Cod sursa (job #1007639) | Cod sursa (job #136771) | Cod sursa (job #653943) | Cod sursa (job #1699269) | Cod sursa (job #1314364)
#include <fstream>
#include <algorithm>
#include <vector>
#include <cstring>
#define NMAX 105
#define get_min(a,b) ((a)<(b)?(a):(b))
using namespace std;
ifstream in ("royfloyd.in");
ofstream out ( "royfloyd.out" );
int Graph[NMAX][NMAX];
int N , M ;
int Sol[NMAX][NMAX];
void Read( void ){
int i , j ;
in >> N ;
for ( i = 1 ; i <= N ; ++i )
for ( j = 1 ; j <= N ; ++j )
in >> Graph[i][j];
}
void RoyFloyd ( void ) {
int i , j , k ;
for ( i = 1 ; i <= N ; ++i )
for ( k =1 ; k <= N ; ++k )
for ( j = 1 ; j <= N ; ++j )
if ( Sol[i][k] and Sol[k][j])
Sol[i][j] = get_min( Sol[i][j] , Sol[i][k]+Sol[k][j]);
}
void Write ( void )
{
int i , j ;
for ( i = 1 ; i <= N ; ++i ){
for ( j = 1 ; j <= N ; ++j )
out << Sol[i][j] << " ";
out << "\n";
}
}
int main(){
Read();
RoyFloyd();
Write();
return 0;
}