Cod sursa(job #2719290)

Utilizator victorzarzuZarzu Victor victorzarzu Data 9 martie 2021 19:08:16
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.65 kb
#include <bits/stdc++.h>
#define oo 0x3f3f3f3f

using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n, dp[105][105];

void Read()
{
  f>>n;
  for(int i = 1;i <= n;++i)
    for(int j = 1;j <= n;++j)
      {
        f>>dp[i][j];
        if(!dp[i][j])
          dp[i][j] = oo;
      }
}

void Solve()
{
  for(int k = 1;k <= n;++k)
    for(int i = 1;i <= n;++i)
      for(int j = 1;j <= n;++j)
        if(i != j)
          dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
  
  for(int i = 1;i <= n;++i, g<<'\n')
    for(int j = 1;j <= n;++j)
      g<<(dp[i][j] >= oo ? 0 : dp[i][j])<<" ";
}

int main()
{
  Read();
  Solve();
  return 0;
}