Pagini recente » Profil Stefan_Nica | Cod sursa (job #2837066) | Statistici Horia Druliac (HoriaDruliac) | Cod sursa (job #285129) | Cod sursa (job #1483676)
#include <stdio.h>
#include <limits.h>
#define NMAX 100
int main() {
FILE* fin = fopen("royfloyd.in", "r");
int n;
fscanf(fin, "%d\n", &n);
int t[NMAX][NMAX];
int i, j;
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
fscanf(fin, "%d", &t[i][j]);
}
fscanf(fin, "\n");
}
fclose(fin);
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if((i!=j) && (t[i][j]==0)) {
t[i][j] = LONG_MAX/2;
}
}
}
int k;
for(k=0; k<n; k++) {
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(t[i][j] > t[i][k] + t[k][j]) {
t[i][j] = t[i][k] + t[k][j];
}
}
}
}
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
if(t[i][j] == LONG_MAX/2) {
t[i][j] = 0;
}
}
}
FILE* fout = fopen("royfloyd.out", "w");
for(i=0; i<n; i++) {
for(j=0; j<n; j++) {
fprintf(fout, "%d ", t[i][j]);
}
fprintf(fout, "\n");
}
fclose(fout);
return 0;
}