Pagini recente » Cod sursa (job #1915049) | Cod sursa (job #1463952) | Cod sursa (job #829525) | Cod sursa (job #1284643) | Cod sursa (job #2631114)
#include <stdio.h>
int main() {
FILE * f;
int n;
int ** M;
f = fopen("royfloyd.in", "r");
fscanf(f, "%d", &n);
M = new int * [n];
for (int i = 0; i < n; i++) {
M[i] = new int [n];
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
fscanf(f, "%d", &M[i][j]);
}
}
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) {
continue;
}
int c = 0;
if (M[i][k] && M[k][j]) {
c = M[i][k] + M[k][j];
}
if (c && c < M[i][j] || M[i][j] == 0) {
M[i][j] = c;
}
}
}
}
f = fopen("royfloyd.out", "w");
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
fprintf(f, "%d ", M[i][j]);
}
fprintf(f, "\n");
}
fclose(f);
for (int i = 0; i < n; i++) {
delete [] M[i];
}
delete [] M;
return 0;
}