Cod sursa(job #2860958)

Utilizator vladburacBurac Vlad vladburac Data 3 martie 2022 11:27:03
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.77 kb
#include <iostream>
#include <fstream>
using namespace std;
const int MAXN = 100;

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

int a[MAXN+1][MAXN+1];
int dist[MAXN+1][MAXN+1][MAXN+1];
int main() {
  int n, i, j, k;
  fin >> n;
  for( i = 1; i <= n; i++ ) {
    for( j = 1; j <= n; j++ )
      fin >> a[i][j];
  }
  for( i = 1; i <= n; i++ ) {
    for( j = 1; j <= n; j++ )
      dist[i][j][0] = a[i][j];
  }
  for( k = 1; k <= n; k++ ) {
    for( i = 1; i <= n; i++ ) {
      for( j = 1; j <= n; j++ ) {
        dist[i][j][k] = min( dist[i][j][k-1], dist[i][k][k-1] + dist[k][j][k-1] );
      }
    }
  }
  for( i = 1; i <= n; i++ ) {
    for( j = 1; j <= n; j++ )
      fout << dist[i][j][n] << " ";
    fout << "\n";
  }
  return 0;
}