Cod sursa(job #1267286)

Utilizator codebreaker24Tivadar Ionut codebreaker24 Data 19 noiembrie 2014 18:49:35
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.87 kb
// Exemplificare algortim Floyd-Marshall
#include <fstream>
using namespace std;

const int N = 100;

int m[N][N];
int n;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

void citire();
void floyd();
void show();

int main ()
{
   citire();
   floyd();
   show();
    return 0;

}

void citire()
{
    int i, j;

    fin >> n;
    for(i=0; i<n; i++)
        for(j=0; j<n; j++)
    {
        fin >> m[i][j];

    }
}

void floyd()
{

    int i, j, k;
    for(k= 0; k<n; k++)
        for(i=0; i<n; i++)
         for(j=0; j<n; j++)
    {
        if (((m[i][j] > m[i][k] + m[k][j])  || !m[i][j])&& m[i][k] && m[k][j] &&i!=j  )
            m[i][j] = m[i][k] + m[k][j];

    }
}

void show()
{

    int i, j;
    for(i=0; i<n ;i++)
    {
        for(j=0; j<n; j++)
        fout << m[i][j] << ' ';
     fout << '\n';
    }

}