Cod sursa(job #2226225)

Utilizator agrtAndreea G agrt Data 29 iulie 2018 21:59:50
Problema Floyd-Warshall/Roy-Floyd Scor 100
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 k = 0; k < nums; ++k) 
		for (int i = 0; i < nums; ++i) 
			for (int j = 0; j < nums; ++j) 
				if  (i != j) 
						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;
}