Pagini recente » Cod sursa (job #2462548) | Cod sursa (job #1944733) | Cod sursa (job #1847426) | Cod sursa (job #1611353) | Cod sursa (job #2089596)
#include <cstdio>
const int MAXN = 1e2;
const int INF = 2e9;
int dist[MAXN][MAXN];
int main() {
int n;
FILE *f = fopen("royfloyd.in", "r");
fscanf(f, "%d", &n);
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
fscanf(f, "%d", &dist[i][j]);
if (!dist[i][j]) {
dist[i][j] = INF;
}
}
}
fclose(f);
for (int k = 0; k < n; ++k) {
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
if ((i ^ j) && dist[i][j] > dist[i][k] + dist[k][j]) {
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}
}
f = fopen("royfloyd.out", "w");
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
fprintf(f, "%d ", dist[i][j] == INF ? 0 : dist[i][j]);
}
fprintf(f, "\n");
}
fclose(f);
return 0;
}