Cod sursa(job #3130828)

Utilizator TudorBordeaBordea Tudor TudorBordea Data 18 mai 2023 18:01:03
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <fstream>

using namespace std;
const int INF = 0x3F3F3F3F;
const int N=100;
int a[N+1][N+1];

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

int main()
{
    int n, m, x, y, c;
    in >> n;
    for(int i = 1 ; i <= n ; i ++)
        for(int j = 1 ; j <= n ; j ++)
        {
            in>>a[i][j];
            if(a[i][j]==0 && i!=j)
                a[i][j]=INF;
        }
    for(int k = 1 ; k <= n ; k ++)
        for(int i = 1 ; i <= n ; i ++)
            for(int j = 1 ; j <= n ; j ++)
                if(a[i][j] > a[i][k] + a[k][j])
                    a[i][j] = a[i][k] + a[k][j];
    for(int i = 1 ; i <= n ; i ++)
        for(int j = 1 ; j <= n ; j ++)
            if(a[i][j] == INF)
                a[i][j] = 0;
    for(int i = 1 ; i <= n ; i ++)
    {
        for(int j = 1 ; j <= n ; j ++)
            out << a[i][j] << " ";
        out<<"\n";
    }
    return 0;
}