Pagini recente » Cod sursa (job #675306) | Cod sursa (job #1045123) | Cod sursa (job #1910754) | Cod sursa (job #1595981) | Cod sursa (job #1397102)
#include <fstream>
#include <climits>
using namespace std;
const int N = 101;
int main(int argc, char *argv[]) {
ifstream f{"royfloyd.in"};
ofstream g{"royfloyd.out"};
int w[N][N], d[N][N];
int n;
f >> n;
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
f >> w[i][j];
if (i == j)
d[i][j] = 0;
else
d[i][j] = w[i][j] != 0 ? w[i][j] : INT_MAX / 2;
}
}
for (int k = 0; k < n; ++k) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if (i != j)
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
g << d[i][j] << " ";
}
g << "\n";
}
return 0;
}