Cod sursa(job #644331)

Utilizator Anamaria20Cotirlea Anamaria Anamaria20 Data 6 decembrie 2011 08:20:57
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

FILE *f,*s;

int i,j,k,l,m,n;

int v1[105][105];

int main()
{
	f=fopen("royfloyd.in","r");
	s=fopen("royfloyd.out","w");
	
	fscanf(f,"%d",&n);
	
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			fscanf(f,"%d",&v1[i][j]);
	
	for(k=1;k<=n;k++)
	{
		for(i=1;i<=n;i++)
		{
			for(j=1;j<=n;j++)
			{
				if( v1[i][k] && v1[k][j] && (v1[i][k]+v1[k][j]<v1[i][j] || !v1[i][j]) && i!=j)
					v1[i][j]=v1[i][k]+v1[k][j];
			}	
		}	
	}	
		
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			fprintf(s,"%d ",v1[i][j]);
		fprintf(s,"\n");
	}	
	
	fclose(s);
	
	return 0;
}