Cod sursa(job #3274220)

Utilizator pacelaaaCiurea Pavel pacelaaa Data 5 februarie 2025 18:50:40
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <fstream>
#include <algorithm>

using namespace std;

int dist[100][100];
const int INF = 1e9;

int main()
{
    int n, i, j, k;
    ifstream cin ( "royfloyd.in");
    ofstream cout ( "royfloyd.out" );

    cin >> n;
    for ( i = 0; i < n; i ++ )
      for ( j = 0; j < n; j ++ ) {
        cin >> dist[i][j];
        if ( dist[i][j] == 0 && j != i )
          dist[i][j] = INF;
      }

    cin.close();

    for ( i = 0; i < n; i ++ )
      for ( j = 0; j < n; j ++ )
        for ( k = 0; k < n; k ++ )
          dist[j][k] = min( dist[j][k], dist[j][i] + dist[i][k]);

    for ( i = 0; i < n; i ++ ) {
      for ( j = 0; j < n; j ++ )
        if ( dist[i][j] != 0 || i == j)
          cout << dist[i][j] << " ";
        else
          cout << 0 << " ";

      cout << "\n";
    }

    cout.close();

    return 0;
}