Pagini recente » Cod sursa (job #2498423) | Cod sursa (job #298457) | Cod sursa (job #1910119) | Cod sursa (job #2710296) | Cod sursa (job #2089597)
#include <cstdio>
const int MAXN = 1e2;
const int INF = 0x3f3f3f3f;
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;
}