Cod sursa(job #1874706)

Utilizator alexandruchiriacAlexandru Chiriac alexandruchiriac Data 10 februarie 2017 12:44:49
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <iostream>
#include <fstream>
using namespace std;

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

int n,i,j,k;
int a[101][101];

int main()
{
    f >> n;
    for ( i = 1; i <= n ; i++ )
        for ( j = 1; j <= n ; j++ )
            f >> a[i][j];
    for ( k = 1; k <= n ; k++ )
        for ( i = 1; i <= n ; i++ )
            for ( j = 1; j <= n ; j++ )
                if ( a[i][k] and a[k][j] and (a[i][j] > a[i][k] + a[k][j] or !a[i][j]) and i != j )
                    a[i][j] = a[i][k] + a[k][j];
    for ( i = 1; i <= n ; i++ )
    {
        for ( j = 1; j <= n ; j++ )
            g << a[i][j] << " " ;
        g << "\n" ;
    }
    return 0;
}