Cod sursa(job #2356960)

Utilizator tiberiu392Tiberiu Ungurianu tiberiu392 Data 27 februarie 2019 00:53:45
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <bits/stdc++.h>
#define dim 110

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


int n,m, i, j, k;
int a[dim][dim];

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] && a[k][j] && ( a[i][j] > a[i][k]+ a[k][j]  || !a[i][j] ) && 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;
}