Cod sursa(job #412178)

Utilizator slayer4uVictor Popescu slayer4u Data 5 martie 2010 13:37:54
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <stdio.h>

long n;
long graf[101][101];

int main ()
{
	freopen ("royfloyd.in", "rt", stdin);
	freopen ("royfloyd.out", "wt", stdout);

	scanf("%ld", &n);

	for (long i = 1; i <= n; ++i)
		for (long j = 1; j <= n; ++j)
		{
			scanf("%ld", &graf[i][j]);
		}

	for (long i = 1; i <= n; ++i)
		for (long j = 1; j <= n; ++j)
			for (long k = 1; k <= n; ++k)
			{
				if (graf[i][j] +  graf[j][k] < graf[i][k])
					graf[i][k] = graf[i][j] + graf[j][k];
			}

	for (long i = 1; i <= n; ++i)
	{
		for (long j = 1; j <= n; ++j)
		{
			printf("%ld ", graf[i][j]);
		}
		printf("\n");
	}

	return 0;
}