Pagini recente » Cod sursa (job #2075660) | Cod sursa (job #1645395) | Cod sursa (job #1586838) | Cod sursa (job #205702) | Cod sursa (job #758586)
Cod sursa(job #758586)
#include <stdio.h>
int main() {
FILE *f = fopen("royfloyd.in", "r"), *g = fopen("royfloyd.out", "w");
int n;
fscanf(f, "%d", &n);
int **ponderi = new int*[n];
for(int i = 0; i < n; i++)
ponderi[i] = new int[n];
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
fscanf(f, "%d", &ponderi[i][j]);
for(int k = 0; k < n; k++)
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
if(i != j && ponderi[i][k] && ponderi[k][j] &&
(ponderi[i][k] + ponderi[k][j] < ponderi[i][j] || ponderi[i][j] == 0))
ponderi[i][j] = ponderi[i][k] + ponderi[k][j];
for(int i = 0; i < n; i++) {
for(int j = 0; j < n; j++)
fprintf(g, "%d ", ponderi[i][j]);
fprintf(g, "\n");
}
fclose(f);
fclose(g);
return 0;
}