Cod sursa(job #1712059)

Utilizator TudorVersoiuVersoiu Tudor Sorin TudorVersoiu Data 1 iunie 2016 21:27:39
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>


using namespace std;
ifstream f("royfloyd.in" );
ofstream g("royfloyd.out");

int NrNoduri;
int Costuri[101][101];

int main() {
    f >> NrNoduri;

    for ( int i=1 ; i<=NrNoduri ; i++ )
        for ( int j=1 ; j<=NrNoduri ; j++ )
            f >> Costuri[i][j];
    for ( int k=1 ; k<=NrNoduri ; k++ )
        for ( int i=1 ; i<=NrNoduri ; i++ )
            for ( int j=1 ; j<=NrNoduri ; j++ )
                if ( i != j )
                    if ( Costuri[i][k] && Costuri[k][j] && ( Costuri[i][k] + Costuri[k][j] < Costuri[i][j] || !Costuri[i][j] ) )
                        Costuri[i][j] = Costuri[i][k] + Costuri[k][j];
    for ( int i=1 ; i<=NrNoduri ; i++ )
    {
        for ( int j=1 ; j<=NrNoduri ; j++ )
            g << Costuri[i][j] << ' ';
        g << '\n';
    }
}