Cod sursa(job #2814749)

Utilizator stevejobsMihail Popescu stevejobs Data 8 decembrie 2021 15:59:42
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.85 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <random>        
#include <chrono>        

int m[101][101];

std::ifstream f("royfloyd.in");
std::ofstream g("royfloyd.out");

int n;

int main() {
	f >> n;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= n; ++j) {
			f >> m[i][j];
		}

	std::vector<int> test;
	for (int i = 1; i <= n; ++i)
		test.push_back(i);

	unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();

	std::shuffle(test.begin(), test.end(), std::default_random_engine(seed));
 

	for (int k=1;k<=n;++k)
		for (int i = 1; i <= n; ++i)
			for (int j = 1; j <= n; ++j)
				if (m[i][k] + m[k][j] < m[i][j])
					m[i][j] = m[i][k] + m[k][j];


	for (int i = 1; i <= n; ++i) {
		for (int j = 1; j <= n; ++j)
			g << m[i][j] << ' ';
		g << '\n';
	}
}