Cod sursa(job #2569716)

Utilizator Diana-ElenaStancu Diana-Elena Diana-Elena Data 4 martie 2020 13:20:35
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda r3capitusulare Marime 0.72 kb
#include <fstream>
using namespace std;
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
int n, i, j, k, ad[104][104];
void citeste()
{
  cin >> n;
  for(i = 0; i < n; ++i)
    for(j = 0; j < n; ++j)
    {
      cin >> ad[i][j];
    }
}
void rezolva()
{
  for(k = 0; k < n; ++k)
    for(i = 0; i < n; ++i)
      for(j = 0; j < n; ++j)
    {
      if(ad[i][j] > ad[i][k] + ad[k][j] && ad[i][k] != 0 && ad[k][j] != 0 && i!=j || ad[i][k] == 0)
        ad[i][j] = ad[i][k] + ad[k][j];
    }
}
void afisare()
{
  for(i = 0; i < n; ++i)
  {
    for(j = 0; j < n; ++j)
      cout << ad[i][j] << ' ';
    cout << '\n';
  }
}
int main()
{
  citeste();
  rezolva();
  afisare();
    return 0;
}