Cod sursa(job #2550010)

Utilizator Briana_NeaguNeagu Briana Briana_Neagu Data 18 februarie 2020 10:53:43
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std;

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

const int inf = (1 << 30);

int main()
{
   int n;
   f >> n;
   vector <vector <int>> dp(n + 1, vector <int> (n + 1));
   for (int i = 1; i <= n; ++ i)
       for (int j = 1; j <= n; ++ j)
       {
           f >> dp[i][j];
           if (i != j && dp[i][j] == 0)
               dp[i][j] = inf;
       }

   for (int k = 1; k <= n; ++ k)
       for (int i = 1; i <= n; ++ i)
           for (int j = 1; j <= n; ++ j)
                   dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);

   for (int i = 1; i <= n; ++ i)
   {
       for (int j = 1; j <= n; ++ j)
           g << dp[i][j] << " ";
       g << '\n';
   }
}