Pagini recente » Cod sursa (job #116721) | Cod sursa (job #1883397) | Cod sursa (job #2010799) | Cod sursa (job #2263742) | Cod sursa (job #1811596)
#include <algorithm>
#include <fstream>
#include <iostream>
#include <iterator>
#include <map>
#include <queue>
#include <set>
#include <string.h>
#include <vector>
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int main() {
// auto &in = cin;
// auto &out = cout;
int N;
in >> N;
vector<vector<int>> adj(N, vector<int>(N));
const int &inf = 1000 * 100 + 5;
for (int i = 0; i < N; i++) {
for (int j = 0; j < N; j++) {
in >> adj[i][j];
if (i != j && adj[i][j] == 0)
adj[i][j] = inf;
}
}
for (int k = 0; k < N; k++)
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
if (adj[i][j] > adj[i][k] + adj[k][j] && i != j)
adj[i][j] = adj[i][k] + adj[k][j];
for (int i = 0; i < N; i++, out << '\n')
for (int j = 0; j < N; j++)
out << adj[i][j] << ' ';
return 0;
}