Cod sursa(job #1607679)

Utilizator dodecagondode cagon dodecagon Data 21 februarie 2016 15:16:53
Problema Floyd-Warshall/Roy-Floyd Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

int n,a[1009][1009];

int main()
{
  FILE * in  = fopen("royfloyd.in","r");
  FILE * out = fopen("royfloyd.out","w");

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

   	 for (int k=0;k<n;k++)
   	 	for (int i=0;i<n;i++)
   	 	   for (int j=0;j<n;j++)
   	 	   	 if (a[i][k] && a[k][j] && i!=j && a[i][k]+a[k][j]<a[i][j])
   	 	   	 	 a[i][j]=a[i][k]+a[k][j];

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