Pagini recente » Istoria paginii utilizator/cu7lse | Cod sursa (job #810980) | Cod sursa (job #2326480) | Cod sursa (job #2300934) | Cod sursa (job #2479992)
#include<iostream>
#include<vector>
#include<fstream>
using namespace std;
int main() {
#ifdef INFOARENA
ifstream cin("royfloyd.in");
ofstream cout("royfloyd.out");
#endif
int n; cin >> n;
vector<vector <int>> a(n, vector<int>(n));
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> a[i][j];
vector<vector <int>> d = a;
for (int k = 0; k < n; k++) {
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i != j) {
int new_dist = d[i][k] + d[k][j];
if (d[i][j] == 0) {
d[i][j] = new_dist;
} else {
d[i][j] = min(d[i][j], new_dist);
}
}
}
}
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++)
cout << d[i][j] << " ";
cout << "\n";
}
return 0;
}