Cod sursa(job #876370)

Utilizator un_nenorocitChelcioiu Daniel un_nenorocit Data 11 februarie 2013 19:09:33
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
# include <stdio.h>
# define NMAX 100
int graph[NMAX][NMAX];
int n;
int main () {
	FILE *f, *g;
	f = fopen("royfloyd.in", "r");
	g = fopen("royfloyd.out", "w");
	fscanf (f, "%d", &n);
	for (int i = 0; i < n; i++){
		for (int j = 0; j < n; j++){
			fscanf(f, "%d", &graph[i][j]);
		}
	}
	for (int k = 0; k < n; k ++)
		for (int i = 0; i < n; i ++) 
			for (int j = 0; j < n; j++) 
				if (graph[i][k] + graph[k][j] < graph[i][j])
					graph[i][j] = graph[i][k] + graph[k][j]; 	

	for (int i = 0; i < n; i++){
		for (int j = 0; j < n; j++){
			fprintf(g, "%d ", graph[i][j]);
		}
		fprintf(g, "\n");
	}
	fclose(f);
	fclose(g);
	return 0;
}