Cod sursa(job #1424238)

Utilizator lucian666Vasilut Lucian lucian666 Data 23 aprilie 2015 19:25:03
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb

//parantezare optima de matrici
#include <iostream>
#include <fstream>
#include <vector>

#define dim 109
#define INF 0x3F3F3F3F

using namespace std;
ofstream out("royfloyd.out");

int a[dim][dim];
int n;
int main()
{
    ifstream in("royfloyd.in");
    in >> n;
    for( int i = 1 ; i<=n ; i++)
        for( int j = 1; j<=n ; j++)
            in >> a[i][j];

    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] ) && ( i!=j ) &&(j!=k) )
                    a[i][j] = a[i][k] + a[k][j];
        }
    }

    for(int i =1 ;i<=n ; i++)
    {
        for( int j = 1 ; j<=n ; j++)
            out << a[i][j] << " ";
        out << '\n';
    }

    return 0;
}