Cod sursa(job #1842262)

Utilizator SMerlinJacobsen Iandru SMerlin Data 6 ianuarie 2017 18:59:04
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include<stdio.h>
#define inf 10000
#pragma warning(disable:4996)
using namespace std;


int main() {
	freopen("royfloyd.in", "r", stdin);
	freopen("royfloyd.out", "w", stdout);
	
	int N, pond[110][110], mat_min[110][110];
	scanf("%d", &N);

	for (int i = 1; i <= N; i++) {
		for (int j = 1; j <= N; j++)
		{
			scanf("%d", &pond[i][j]);
			if (!pond[i][j]) pond[i][j] = inf;
		}
		pond[i][i] = 0;
	}

	for (int k = 1; k <= N; k++)
		for (int i = 1; i <= N; i++)
			for (int j = 1; j <= N; j++)
				if (pond[i][j] > pond[i][k] + pond[k][j])
					pond[i][j] = pond[i][k] + pond[k][j];

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

	return 0;
}