Cod sursa(job #1049812)

Utilizator SzymonSidorSzymonSidor SzymonSidor Data 7 decembrie 2013 20:15:17
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <algorithm>
#include <iostream>
#include <fstream>

#define MAX 128
#define INF 0x3f3f3f3f

using namespace std;

int n;
int dist[MAX][MAX];

int main() {
	ifstream cin("royfloyd.in");
	ofstream cout("royfloyd.out");

	cin >> n;

	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++) {
			cin >> dist[i][j];

			if (i != j && !dist[i][j])
				dist[i][j] = INF;
		}

	for (int interm = 1; interm <= n; interm++)
		for (int start = 1; start <= n; start++)
			for (int end = 1; end <= n; end++)
				dist[start][end] = min(dist[start][end], dist[start][interm] + dist[interm][end]);

	for (int i = 1; i <= n; cout << "\n", i++)
		for (int j = 1; j <= n; j++)
			cout << dist[i][j] << " ";

	return 0;
}