Pagini recente » Cod sursa (job #32557) | Cod sursa (job #32541) | Cod sursa (job #32612) | Cod sursa (job #2282749) | Cod sursa (job #3296306)
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 100;
const int INF = 1e9;
int minc[MAXN][MAXN];
int minim(int a, int b) {
return a < b ? a : b;
}
int main()
{
FILE *fin, *fout;
int n, l, c, x, y, z;
fin = fopen("royfloyd.in", "r");
fscanf(fin, "%d", &n);
for (l = 0; l < n; l++) {
for (c = 0; c < n; c++) {
fscanf(fin, "%d", &minc[l][c]);
if (minc[l][c] == 0) {
minc[l][c] = INF;
}
}
}
fclose(fin);
for (z = 0; z < n; z++) {
for (x = 0; x < n; x++) {
for (y = 0; y < n; y++) {
minc[x][y] = minim(minc[x][y], minc[x][z] + minc[z][y]);
}
}
}
fout = fopen("royfloyd.out", "w");
for (l = 0; l < n; l++) {
for (c = 0; c < n; c++) {
if (minc[l][c] == INF || l == c) {
minc[l][c] = 0;
}
fprintf(fout, "%d ", minc[l][c]);
}
fputc('\n', fout);
}
fclose(fout);
return 0;
}