Cod sursa(job #1278163)

Utilizator Emilia26Hangan Emilia Emilia26 Data 28 noiembrie 2014 16:30:04
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#define DIM 101
using namespace std;

ifstream is("royfloyd.in");
ofstream os("royfloyd.out");

int n, a[DIM][DIM];
int c[DIM][DIM];

void Read();
void FW();
void Write();

int main()
{
    Read();
    FW();
    Write();

    is.close();
    os.close();
    return 0;
}


void Read()
{
    is >> n;
    for ( int i = 1; i <= n; ++i )
        for ( int j = 1; j <= n; ++j )
        {
            is >> a[i][j];
            c[i][j] = a[i][j];
        }
}

void FW()
{
    for ( int k = 1; k <= n; ++k )
        for ( int i = 1; i <= n; ++i )
            for ( int j = 1; j <= n; ++j )
                if ( c[i][j] > c[i][k] + c[k][j] )
                    c[i][j] = c[i][k] + c[k][j];

}

void Write()
{
    for ( int i = 1; i <= n; ++i )
    {
        for ( int j = 1; j <= n; ++j )
            os << c[i][j] << ' ';
        os << '\n';
    }


}