Cod sursa(job #702437)

Utilizator darle.gheorgheDarle Gheorghe darle.gheorghe Data 1 martie 2012 21:50:46
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
#define NMax 101
FILE *fin,*fout;
int c[NMax][NMax];
main()
{
int i,j,k;
int n;
fin = fopen("royfloyd.in","r");
fout = fopen("royfloyd.out","w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
	for(j=1;j<=n;j++)
	{		
		fscanf(fin,"%d",&c[i][j]);
		if(i!=j)
			if(c[i][j]==0)
				c[i][j]=32768;
	}
		
for(k=1;k<=n;k++)
	for(i=1;i<=n;i++)
		for(j=1;j<=n;j++)
			if(c[i][k]+c[k][j]<c[i][j])
				c[i][j]=c[i][k]+c[k][j];
			else
				c[i][j]=c[i][j];

for(i=1;i<=n;i++)
{
	for(j=1;j<=n;j++)
	{
		if(i!=j)
			{
				if(c[i][j]==32768)
				fprintf(fout,"%d ",0);
				else
				fprintf(fout,"%d ",c[i][j]);
			}
		else
			fprintf(fout,"%d ",c[i][j]);
	}
fprintf(fout,"\n");	
}
fclose(fin);
fclose(fout);
}