Cod sursa(job #597000)

Utilizator Brz_VladBrezae Vlad Brz_Vlad Data 20 iunie 2011 16:15:09
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>

int main(int argc, char* argv[])
{
	int MCost[100][100];
	int n;
	int i,j,k;

	FILE *fpr,*fpw;
	fpr = fopen("royfloyd.in","r");
	fpw = fopen("royfloyd.out","w");

	fscanf(fpr,"%d",&n);
	for(i=0;i<n;i++)
		for(j=0;j<n;j++)
			fscanf(fpr,"%d",&MCost[i][j]);

	for(k=0;k<n;k++)
		for(i=0;i<n;i++)
			for(j=0;j<n;j++)
				if( MCost[i][k] && MCost[k][j] && ( MCost[i][j] > ( MCost[i][k] + MCost[k][j])))
					MCost[i][j] = MCost[i][k] + MCost[k][j];

	for(i=0;i<n;i++){	
		for(j=0;j<n;j++)
			fprintf(fpw,"%d ",MCost[i][j]);
		fprintf(fpw,"\n");
	}

	fclose(fpr);
	fclose(fpw);
	return 0;
}