Cod sursa(job #2919022)

Utilizator BlueLuca888Girbovan Robert Luca BlueLuca888 Data 14 august 2022 20:07:13
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb

#include <bits/stdc++.h>

using namespace std;

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

const int INF = 1e9;
const int DIM = 105;

int n, dp[DIM][DIM];

void roy_floyd(){
    for(int k=1; k<=n; k++)
        for(int i=1; i<=n; i++)
            for(int j=1; j<=n; j++)
                if(i != j)
                    if(dp[i][k] != 0 && dp[k][j] != 0 && (dp[i][j] > dp[i][k] + dp[k][j] || dp[i][j] == 0))
                        dp[i][j] = dp[i][k] + dp[k][j];
}

int main (){
    fin>>n;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
            fin>>dp[i][j];

    roy_floyd();

    for(int i=1; i<=n; i++, fout<<"\n")
        for(int j=1; j<=n; j++, fout<<" ")
            fout<<dp[i][j];
    return 0;
}