Cod sursa(job #428878)

Utilizator alexandru92alexandru alexandru92 Data 29 martie 2010 17:19:09
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
/* 
 * File:   main.cpp
 * Author: SpeeDemon
 *
 * Created on March 29, 2010, 4:02 PM
 */
#include <cstdlib>
#include <fstream>
#include <iterator>
#define Nmax 100
#define oo 0x3f3f3f3f

/*
 *
 */
using namespace std;
int main( void )
{
    int N, i, j, k;
    int C[Nmax][Nmax];
    ifstream in( "royfloyd.in" );
    in>>N;
    for( i=0; i < N; ++i )
        for( j=0; j < N; ++j )
        {
            in>>C[i][j];
            if( 0 == C[i][j] )
                C[i][j]=oo;
        }
     for( k=0; k < N; ++k )
         for( i=0; i < N; ++i )
             if( k != i )
                for( j=0; j < N; ++j )
                    if( i != j && k != j && C[i][j] > C[i][k]+C[k][j] )
                        C[i][j]=C[i][k]+C[k][j];
   ofstream out( "royfloyd.out" );
   for( i=0; i < N; ++i )
   {
       for( j=0; j < N; ++j )
           out<<( oo == C[i][j] ? 0 : C[i][j] )<<' ';
       out<<'\n';
   }
   return EXIT_SUCCESS;
}