Cod sursa(job #1430840)

Utilizator muraru_georgeMuraru George Cristian 323CB muraru_george Data 8 mai 2015 21:14:37
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.65 kb
#include <iostream>
#include <vector>
#include <fstream>
#include <stdio.h>

using namespace std;

int a[100][100];


int min (int a, int b) {
	return (a > b)? b : a;
}


int main()
{

	freopen("royfloyd.in", "rt", stdin);
	freopen("royfloyd.out", "wt", stdout);

	int n;
	cin >> n;
	for (int i = 0; i < n; ++i)
		for (int j = 0; j < n; ++j)
			cin >> a[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 && a[i][k] && a[k][j])
					a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
			
	for (int i = 0; i < n; ++i) {
		for (int j = 0; j < n; ++j)
			cout << a[i][j] << " ";
		cout << endl;
	}

	return 0;
}