Cod sursa(job #2226219)

Utilizator agrtAndreea G agrt Data 29 iulie 2018 21:39:21
Problema Floyd-Warshall/Roy-Floyd Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;

int main(int argc, char const *argv[]) {

	ifstream inFile;
	inFile.open("royfloyd.in");
	ofstream outf("royfloyd.out");

	int nums;
	inFile >> nums;
	int matr[nums][nums];

	for (int i = 0; i < nums; ++i) 
		for (int j = 0; j < nums; ++j) 
			inFile >> matr[i][j];

	for (int i = 0; i < nums; ++i) 
		for (int j = 0; j < nums; ++j) 
			if  (i != j) 
				for (int k = 0; k < nums; ++k) 
					if (matr[i][k] != 0 && matr[k][j] != 0) {
						if (matr[i][j] > matr[i][k] + matr[k][j] || matr[i][j] == 0)
							matr[i][j] = matr[i][k] + matr[k][j];
					}

			
	for (int i = 0; i < nums; ++i) {
		for (int j = 0; j < nums; ++j) {
			outf << matr[i][j] << " ";			
		}
		outf << "\n";			

	}

	outf.close();
	inFile.close();
	return 0;
}