Pagini recente » Cod sursa (job #1308112) | Cod sursa (job #2093338) | Cod sursa (job #24614) | Cod sursa (job #2947030) | Cod sursa (job #2194047)
#include <bits/stdc++.h>
using namespace std;
ifstream f ("royfloyd.in");
ofstream g ("royfloyd.out");
int n;
int a[1005][1005];
void citire() {
f >> n;
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j)
f >> a[i][j];
}
}
void algoritm() {
int i, j, k;
for (k = 1; k <= n; ++k) {
for (i = 1; i <= n; ++i) {
for (j = 1; j <= n; ++j) {
if (a[i][k] && a[k][j] &&
(a[i][j] > a[i][k] + a[k][j] || !a[i][j]) &&
i != j)
a[i][j] = a[i][k] + a[k][j];
}
}
}
}
void afisare() {
for (int i = 1; i <= n; ++i) {
for (int j = 1; j <= n; ++j) {
g << a[i][j] << ' ';
}
g << '\n';
}
}
int main()
{
citire();
algoritm();
afisare();
return 0;
}