Cod sursa(job #144028)

Utilizator anna_bozianuBozianu Ana anna_bozianu Data 27 februarie 2008 02:41:34
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.54 kb
#include<stdio.h>
#define conditie a[i][k]&&a[k][j]&&(a[i][j]>a[i][k]+a[k][j]||!a[i][j])&&i!=j
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(conditie)a[i][j]=a[i][k]+a[k][j];
	for(i=1;i<=n;i++)
	 { for(j=1;j<=n;j++)
	    fprintf(g,"%ld ",a[i][j]);
	    fprintf(g,"\n");
	 }
	fcloseall();return 0;
}