Cod sursa(job #2041659)

Utilizator Spiromanii_MessiUNIBUCThrowTerror Spiromanii_Messi Data 17 octombrie 2017 17:56:31
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>

using namespace std ;

const int MAX = 111 ;

int rf [MAX][MAX] ; 

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

int main(int argc, char const *argv[])
{
	/* code */
	int n ;
	fin >> n ;
	for (int i = 1 ; i <= n ; ++ i) {
		for (int j = 1 ; j <= n ; ++ j) {
			fin >> rf [i][j] ;	
		}
	}
	for (int k = 1 ; k <= n ; ++ k) {
		for (int i = 1 ; i <= n ; ++ i) {
			for (int j = 1 ; j <= n ; ++ j) {
				if (i != k and j != k and i != j and rf [i][j] > rf [i][k] + rf [k][j]) {
					rf [i][j] = rf [i][k] + rf [k][j] ;
				}
			}
		}
	}

	for (int i = 1 ; i <= n ; ++ i) {
		for (int j = 1 ; j <= n ; ++ j) {
			fout << rf [i][j] << ' ' ;	
		}
		fout << '\n' ;
	}
 	return 0;
}