Cod sursa(job #145443)

Utilizator bogdan2412Bogdan-Cristian Tataroiu bogdan2412 Data 28 februarie 2008 20:24:04
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.48 kb
#include <stdio.h>

#define MAXN 128
#define FOR(i, a, b) for (int (i) = (a); (i) < (int)(b); (i)++)
int N, x[MAXN][MAXN];

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

	scanf("%d", &N);
	FOR(i, 0, N) FOR(j, 0, N)
		scanf("%d", x[i] + j);

	FOR(k, 0, N) FOR(i, 0, N) FOR(j, 0, N)
		if (x[i][k] + x[k][j] < x[i][j])
			x[i][j] = x[i][k] + x[k][j];

	FOR(i, 0, N)
	{
		FOR(j, 0, N)
			printf("%d ", x[i][j]);
		printf("\n");
	}

	return 0;
}