Cod sursa(job #989595)

Utilizator alexandru.huleaAlexandru Hulea alexandru.hulea Data 25 august 2013 22:58:03
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#include <fstream>

using namespace std;

int main()
{
    ifstream in("royfloyd.in");
    ofstream out("royfloyd.out");
    int N;
    in>>N;
    int i,j,k;
    int matrix[100][100];
   
    for ( i = 0 ; i < N; i++)
        for ( j= 0 ; j< N; j++)
            in>>matrix[i][j];
   
    for ( k = 0 ; k <N ; k++)
        for ( i= 0 ; i< N ; i++)
            for ( j= 0; j < N ; j++)
                { 
                     if ( i == j || i == k || j == k) continue;
                     if (( matrix[i][j] > matrix[i][k] + matrix [k][j] || matrix[i][j] == 0 ) && matrix[i][k] != 0 && matrix[k][j] != 0 )
                                         matrix[i][j] = matrix[i][k] + matrix [k][j];
                }       
         
    for ( i = 0 ; i < N; i++)
        for (j = 0; j < N; j++)
        {
            if ( j == 0  ) out << matrix[i][j] ;
            else  if ( j == N-1) out << " " << matrix[i][j] << "\n";
            else out << " " << matrix[i][j] ;
        }
    
    in.close();
    out.close();
    return 0;
}