Cod sursa(job #1199542)

Utilizator silidragosSilion Dragos silidragos Data 19 iunie 2014 16:58:20
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<iostream>
#include<fstream>
#define NMAX 100
using namespace std;



int main(){
	ifstream f("royfloyd.in", ios::in);//Change the name
	ofstream g("royflody.out", ios::out);//Change the name

	int N;
	int a[NMAX][NMAX];

	f >> N;
	for (int i = 0; i < N; ++i)
	for (int j = 0; j < N; ++j){
		f >> a[i][j];
	}

	for (int k = 0; k < N;++k)
	for (int i = 0; i < N;++i)
	for (int j = 0; j < N; ++j){
		if (a[i][k] && a[k][j] && ((a[i][k] + a[k][j]) < a[i][j] || !a[i][j]) && i != j)
			a[i][j] = a[i][k] + a[k][j];

	}

	for (int i = 0; i < N; ++i){
	for (int j = 0; j < N; ++j)
		g<< a[i][j]<<' ';
		g << '\n';
	}

	f.close();
	g.close();
	return 0;
}