Cod sursa(job #280063)

Utilizator omu_salcamtache tudor omu_salcam Data 13 martie 2009 10:37:44
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
int ma[102][102],i,j,i1,i2,i3,n;
FILE *f1,*f2;
int main(){
	f1=fopen("royfloyd.in","r");
	f2=fopen("royfloyd.out","w");
	fscanf(f1,"%d",&n);
	for(i=1;i<=n;i++){
		for(j=1;j<=n;fscanf(f1,"%d",&ma[i][j]),j++);
	}
	for(i1=1;i1<=n;i1++){
		for(i2=1;i2<=n;i2++){
			for(i3=1;i3<=n;i3++){
				if(i2!=i3 && ma[i1][i3] && ma[i2][i1] && (ma[i2][i3]>ma[i2][i1]+ma[i1][i3] || !ma[i2][i3])){
					ma[i2][i3]=ma[i1][i3]+ma[i2][i1];
				}
			}
		}
	}
	for(i=1;i<=n;i++){
		for(j=1;j<=n;fprintf(f2,"%d ",ma[i][j]),j++);
		fprintf(f2,"\n");
	}
	return 0;
}