Cod sursa(job #252144)

Utilizator ada_sAda-Mihaela Solcan ada_s Data 3 februarie 2009 22:19:55
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include <stdio.h>
const int NMAX=110;

int min(int x, int y);

int main()
{
	int a[NMAX][NMAX], b[NMAX][NMAX], i, j, k, n;
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);
	scanf("%d", &n);
	for (i=0; i<n; i++)
		for (j=0; j<n; j++)
		{
			scanf("%d", &a[i][j]);
			b[i][j]=a[i][j];
		}//for j
  for (k=0; k<n; k++)
		for (i=0; i<n; i++)
			for (j=0; j<n; j++)
				b[i][j]=min(b[i][j], b[i][k]+b[k][j]);
	for (i=0; i<n; i++)
	{
		for (j=0; j<n; j++)
			printf("%d ", b[i][j]);
		printf("\n");
	}//for i
	return 0;
}//main

int min(int x, int y)
{
	if (x<y)
		return x;
	else
		return y;
}//min