Cod sursa(job #3237520)

Utilizator tsg38Tsg Tsg tsg38 Data 9 iulie 2024 19:03:44
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <bits/stdc++.h>

using namespace std;

ifstream fin( "royfloyd.in" );
ofstream fout( "royfloyd.out" );

const int DIM = 101;
const int INF = 1e9;

int dist[DIM][DIM];

int main() {
  ios_base::sync_with_stdio(0);
  fin.tie(0);
  int n;

  fin >> n;
  for ( int i = 1; i <= n; ++i ) {
	for ( int j = 1; j <= n; ++j ) {
      fin >> dist[i][j];
	  dist[i][j] = (i != j && dist[i][j] == 0 ? INF : dist[i][j]);
	}
  }
  for ( int k = 1; k <= n; ++k ) {
	for ( int i = 1; i <= n; ++i ) {
	  for ( int j = 1; j <= n; ++j ) {
		dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
	  }
	}
  }
  for ( int i = 1; i <= n; ++i ) {
	for ( int j = 1; j <= n; ++j ) {
	  fout << (dist[i][j] == INF ? 0 : dist[i][j]) << " ";
	}
	fout << "\n";
  }
  fin.close();
  fout.close();
  return 0;
}