Pagini recente » Cod sursa (job #569763) | Cod sursa (job #1316191) | Cod sursa (job #1107177) | Cod sursa (job #2438795) | Cod sursa (job #1373073)
#include <fstream>
using namespace std;
const int kNMax = 110;
int n, v[kNMax][kNMax];
void Citire() {
ifstream in("royfloyd.in");
in >> n;
for (int i = 1; i <= n ; ++i)
for (int j = 1; j <= n ; ++j)
in >> v[i][j];
in.close();
}
void Solve() {
for(int k = 1; k <= n; ++k)
for (int i = 1; i <= n; ++i)
for (int j = 1; j <= n; ++j)
if ((!v[i][j] || v[i][j] > v[i][k] + v[k][j]) && v[i][k] && v[k][j] && i!=j)
v[i][j] = v[i][k] + v[k][j];
}
void Afisare() {
ofstream out("royfloyd.out");
for (int i = 1; i <= n ; ++i) {
for (int j = 1; j <= n ; ++j)
out << v[i][j] << ' ';
out << '\n';
}
out.close();
}
int main() {
Citire();
Solve();
Afisare();
return 0;
}