Cod sursa(job #1608404)

Utilizator Ene_Orlando_Georgian_321CBEne Orlando Georgian Ene_Orlando_Georgian_321CB Data 22 februarie 2016 01:45:11
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <stdio.h>

int main(){

	FILE* in = fopen("roy-floyd.in","r");
	FILE* out = fopen("roy-floyd.out","w");

	int n, i = 0, j = 0, k=0;
	fscanf(in,"%d",&n);

	int graf[n][n];

	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			fscanf(in,"%d",&graf[i][j]);
		}
	}

	for(k=0;k<n;k++){
		for(i=0;i<n;i++){
			for(j=0;j<n;j++){
				if(graf[i][k] != 0 && graf[k][j] != 0 && graf[i][j]  > graf[i][k] + graf[k][j]){
					graf[i][j] = graf[i][k] + graf[k][j];
				}
			}
		}
	}

	for(i=0;i<n;i++){
		for(j=0;j<n;j++){
			fprintf(out,"%d ",graf[i][j]);
		}
		fprintf(out,"\n");
	}


	return 0;
}