Cod sursa(job #834569)

Utilizator ciocirlandanielCiocirlan Daniel ciocirlandaniel Data 14 decembrie 2012 18:16:31
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <stdio.h>

int graf[100][100];
int N;

int main()
{
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);
	
	scanf("%i", &N);
	//printf("%i\n", N);
	for (int i=0; i<N; i++)
		for(int j=0; j<N; j++)
			scanf("%i", &graf[i][j]);

	for(int k=0; k<N; k++)
		for(int i=0; i<N; i++)
			for(int j=0; j<N; j++) if (i != j)
				if (graf[i][k] != 0 && graf[k][j] != 0 && graf[i][j] != 0
					&& graf[i][j] > graf[i][k] + graf[k][j])
						graf[i][j] = graf[i][k] + graf[k][j];

	for (int i=0; i<N; i++)
	{
		for (int j=0; j<N; j++)
			printf("%i ", graf[i][j]);
		printf("\n");
	}



	return 0;
}