Cod sursa(job #381650)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 11 ianuarie 2010 12:19:00
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
#include<cstdio>
#define N 101
#define minn(a,b) ((a<b)? (a):(b))
#define INF 200000000
int n,cost[N][N];
void citire()
{
	freopen("royfloyd.in","r",stdin);
	freopen("royfloyd.out","w",stdout);
	scanf("%d",&n);
	for (int i=1; i<=n; ++i)
		for (int j=1; j<=n; ++j)
		{
			scanf("%d",&cost[i][j]);
			if (!cost[i][j]&&i!=j)
				cost[i][j]=INF;
		}
}
void royfloyd()
{
	for (int k=1; k<=n; ++k)
		for (int i=1; i<=n; ++i)
			for (int j=1; j<=n; ++j)
				if (i!=j)
				cost[i][j]=minn(cost[i][j],cost[i][k]+cost[k][j]);
}
void afis()
{
	for (int i=1; i<=n; ++i)
	{
		for (int j=1; j<=n; ++j)
			printf("%d ",cost[i][j]);
		printf("\n");
	}
}
int main()
{
	citire();
	royfloyd();
	afis();
	return 0;
}