Pagini recente » Cod sursa (job #2038935) | Cod sursa (job #449860) | Cod sursa (job #1025865) | Cod sursa (job #2834790) | Cod sursa (job #273936)
Cod sursa(job #273936)
#include <stdio.h>
#define max 101
int m[max][max];
int n,i,j,k;
void citeste () {
FILE * in = fopen("royfloyd.in", "r");
fscanf(in, "%d", &n);
for (i=1; i<=n; i++) {
for (j=1; j<=n; j++) {
fscanf(in, "%d", &m[i][j]);
}
}
for (i=1; i<=n; i++) {
for (j=1; j<=n; j++) {
if (m[i][j] == 0)
m[i][j] = 2147483647;
}
}
fclose(in);
}
void scrie () {
FILE * out = fopen("royfloyd.out", "w");
for (i=1; i<=n; i++) {
for (j=1; j<=n; j++) {
fprintf(out, "%d ", m[i][j]);
}
fprintf(out, "\n");
}
fclose(out);
}
void rezolva () {
for (k=1; k<=n; k++) {
for (i=1; i<=n; i++) {
for (j=1; j<=n; j++) {
if ((m[i][j] > (m[i][k] + m[k][j]))) {
m[i][j] = (m[i][k] + m[k][j]);
}
}
}
}
}
int main () {
citeste();
rezolva();
scrie();
return 0;
}