Cod sursa(job #2804744)

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

using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n;
int dist[101][101];

void read()
{
  f>>n;
  for(int i = 1;i <= n;++i)
    for(int j = 1;j <= n;++j)
      {
        f>>dist[i][j];
        dist[i][j] = (dist[i][j] == 0 ? oo : dist[i][j]);
      }
}

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)
          dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
  
  for(int i = 1;i <= n;++i, g<<'\n')
    for(int j = 1;j <= n;++j)
      g<<(dist[i][j] >= oo ? 0 : dist[i][j])<<" ";
}


int main()
{
  read();
  solve();
  return 0;
}