Cod sursa(job #609136)

Utilizator ioalexno1Alexandru Bunget ioalexno1 Data 19 august 2011 18:21:34
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <stdio.h>
#define max 999999999
using namespace std;
int main()
{FILE *f,*g;
int cost[101][101],n,i,j,k;
f=fopen("royfloyd.in","r");
g=fopen("royfloyd.out","w");
fscanf(f,"%d",&n);
for(i=1;i<=n;i++)
{
	for(j=1;j<=n;j++)
	{
		fscanf(f,"%d",&cost[i][j]);
		if(cost[i][j]==0){ cost[i][j]=max; if(i==j)cost[i][j]=0; }
		
	}
}
for(k=1;k<=n;k++)
	{
	for(i=1;i<=n;i++)
		{
		for(j=1;j<=n;j++)
			{
			if(cost[i][k]!=max && cost[k][j]!=max)
			 if(cost[i][j]>cost[i][k]+cost[k][j])cost[i][j]=cost[i][k]+cost[k][j];
			}
		}
	}
									
for(i=1;i<=n;i++)
	{
	for(j=1;j<=n;j++)
		{
		if(cost[i][j]==max) cost[i][j]=0;
		fprintf(g,"%d ",cost[i][j]);
		}
	fprintf(g,"\n");
	}
fclose(f);
fclose(g);
return 0;
}