Cod sursa(job #3320899)

Utilizator MMEnisEnis Mutlu MMEnis Data 7 noiembrie 2025 17:44:05
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.99 kb
#include <iostream>
#include <fstream>
#include <algorithm>

using namespace std;

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

int a[101][101];

int main()
{
    int n;
    f >> n;
    for ( int i = 1; i <= n; i ++ )
        for ( int j = 1; j <= n; j ++ )
                f >> a[i][j];
    int i, j, k;
    for ( k = 1; k <=n; k ++ )
    {
        for ( i = 1; i <= n; i ++ )
        {
            for ( j = 1; j <= n; j ++ )
            {
                if ( i != j )
                {
                    if ( a[i][k] > 0 && a[k][j] > 0 )
                    {
                        if ( a[i][j] != 0 )
                            a[i][j] = min (a[i][j], a[i][k] + a[k][j]);
                        else 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;
}