Cod sursa(job #144023)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 27 februarie 2008 02:23:36
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<stdio.h>
long int n,i,j,k,dist,a[102][102];
int main()
{
	FILE *f,*g;f=fopen("royfloyd.in","r");g=fopen("royfloyd.out","w");
	fscanf(f,"%ld",&n);
	for(i=1;i<=n;i++)
	 for(j=1;j<=n;j++)
	  fscanf(f,"%ld",&a[i][j]);
	for(k=1;k<=n;k++)
	 for(i=1;i<=n;i++)
	  for(j=1;j<=n;j++)
	   { if((i!=j)&&(i!=k)&&(j!=k))
	      if(a[i][k])
	       if(a[k][j])
		if((!a[i][j])||(a[i][j]>a[i][k]+a[k][j]))
		 a[i][j]=a[i][k]+a[k][j];
	   }
	 for(i=1;i<=1;i++)
	 { for(j=1;j<=n;j++)
	    fprintf(g,"%ld ",a[i][j]);
	    fprintf(g,"\n");
	 }
	fcloseall();return 0;
}