Cod sursa(job #2268583)

Utilizator marcudanfDaniel Marcu marcudanf Data 24 octombrie 2018 23:08:28
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>

const int NMAX = 105;
const int inf = 1<<30;

using namespace std;

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

int v[NMAX][NMAX];
int n;

int main(){
	fin >> n;
	for(int i = 0; i < n; i++)
		for(int j = 0; j < n; j++){
			fin >> v[i][j];
			if(i != j and v[i][j] == 0)
				v[i][j] = inf;
		}
	fin.close();
	for(int k = 0; k < n; k++)
		for(int i = 0; i < n; i++)
			for(int j = 0; j < n; j++)
				v[i][j] = min(v[i][j], v[i][k] + v[k][j]);
	for(int i = 0; i < n; i++){
		for(int j = 0; j < n; j++)
			fout << v[i][j] << ' ';
		fout << '\n';
	}
	fout.close();
	return 0;
}