Cod sursa(job #1221947)

Utilizator paulhermanPaul Herman paulherman Data 21 august 2014 18:35:15
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <cstdio>
using namespace std;

const int MAX_V = 105;
int v, adj[MAX_V][MAX_V];

int main() {
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);
	
	scanf("%d", &v);
	for (int i = 0; i < v; i++)
		for (int j = 0; j < v; j++)
			scanf("%d", &adj[i][j]);
			
	for (int k = 0; k < v; k++)
		for (int i = 0; i < v; i++)
			for (int j = 0; j < v; j++)
				if (adj[i][k] != 0 && adj[k][j] != 0 && (adj[i][k] + adj[k][j] < adj[i][j] || adj[i][j] == 0))
					adj[i][j] = adj[i][k] + adj[k][j];
		
	for (int i = 0; i < v; i++, printf("\n"))
		for (int j = 0; j < v; j++)
			printf("%d ", adj[i][j]);
			
	return 0;
}