Cod sursa(job #184611)

Utilizator anoukAnca Dumitrache anouk Data 23 aprilie 2008 22:23:42
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
#define DIM 111
using namespace std;

int N, A[DIM][DIM];

int main()
{
	FILE *fin = fopen("royfloyd.in", "r");
	FILE *fout = fopen("royfloyd.out", "w");

	fscanf(fin, "%d", &N);
	for (int i = 1; i <= N; i++)
		for (int j = 1; j <= N; j++)
			fscanf(fin, "%d", &A[i][j]);
	for (int k = 1; k <= N; k++)
		for (int i = 1; i <= N; i++)
			for (int j = 1; j <= N; j++)
				if (i != j && A[i][k] && A[k][j] && (!A[i][j] || A[i][j] > A[i][k] + A[k][j]))
					A[i][j] = A[i][k] + A[k][j];
	for (int i = 1; i <= N; i++)
	{
		for (int j = 1; j <= N; j++)
			fprintf(fout, "%d ", A[i][j]);
		fprintf(fout, "\n");
	}

	fclose(fin);
	fclose(fout);
	return 0;
}