Cod sursa(job #1982918)

Utilizator ArctopusKacso Peter-Gabor Arctopus Data 20 mai 2017 16:50:33
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include <iostream>
#include <climits>
#include <fstream>

using namespace std;

 ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

const int NLIM = 100 + 10;
const int INF = 10000000;

int N;
int mat[NLIM][NLIM];


int main()
{
    fin >> N;
    for( int i = 0; i < N; ++i )
        for( int j = 0; j < N; ++j )
        {
            fin >> mat[i][j];

            if( mat[i][j] == 0 )
                mat[i][j] = INF;
        }

    for( int k = 0; k < N; ++k )
        for( int i = 0; i < N; ++i )
            for( int j = 0; j < N; ++j )
                if( mat[i][k] + mat[k][j] < mat[i][j]  )
                    mat[i][j] = mat[i][k] + mat[k][j];

    for( int i = 0; i < N; ++i )
    {
        for( int j = 0; j < N; ++j )
        {
            if( mat[i][j] == INF || i == j )
                fout << 0 << " ";
            else
                fout << mat[i][j] << " ";
        }
        fout << "\n";
    }
    return 0;
}