Pagini recente » Borderou de evaluare (job #1998103) | Borderou de evaluare (job #1991034) | Borderou de evaluare (job #2962017) | Borderou de evaluare (job #664963) | Cod sursa (job #2814751)
#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];
if (m[i][j] == 0)m[i][j] = 1e9;
}
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] == 1e9 ? 0 : m[i][j]) << ' ';
g << '\n';
}
}