Cod sursa(job #771514)

Utilizator ioana26Ioana Andronescu ioana26 Data 26 iulie 2012 10:50:38
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
/* 
Roy-Floyd.
*/

#include <iostream>
#include <vector>
#include <stdio.h>

#define MAXN	100

short nr_noduri;
int mat[MAXN][MAXN];

void roy_floyd () {
	int i, j, k;
	for (k = 1; k <= nr_noduri; k++)
		for (i = 1; i <= nr_noduri; i++)
			for (j = 1; j <= nr_noduri; j++)
				if (i != j && mat[i][k] && mat[k][j] && (!mat[i][j] || mat[i][j] > mat[i][k] + mat[k][j]))
					mat[i][j] = mat[i][k] + mat[k][j];					
}

int main () {
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);

	int i, j;
	scanf("%hd", &nr_noduri);
	for (i = 1; i <= nr_noduri; i++)
		for (j = 1; j <= nr_noduri; j++)
			scanf("%d", &mat[i][j]);

	for (i = 1; i <= nr_noduri; i++) {
		for (j = 1; j <= nr_noduri; j++)
			printf("%d ", mat[i][j]);
		printf("\n");
	}

	return 0;
}