Cod sursa(job #2570613)

Utilizator BenjaminOnlyBenjamin Popescu BenjaminOnly Data 4 martie 2020 18:02:21
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <bits/stdc++.h>
#define INF 0x3f3f3f3f

using namespace std;

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

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

void Pink_Floyd()
{
    for(k = 1; k <= n; ++ k)
        for(i = 1; i <= n; ++ i)
            for(j = 1; j <= n; ++ j)
                if(mat[i][j] != INF && mat[i][k] + mat[k][j] < mat[i][j])
                    mat[i][j] = mat[i][k] + mat[k][j];
}
int main()
{
    f >> n;
    for(i = 1; i <= n; ++ i)
        for(j = 1; j <= n; ++ j)
        {
            f >> mat[i][j];
            if(!mat[i][j])
                mat[i][j] = INF;
        }
    Pink_Floyd();
    for(i = 1; i <= n; ++ i, g << '\n')
        for(j = 1; j <= n; ++ j, g << ' ')
            if(mat[i][j] != INF)
            g << mat[i][j];
        else
             g << 0;
}