Cod sursa(job #1725692)

Utilizator theodor.moroianuTheodor Moroianu theodor.moroianu Data 6 iulie 2016 10:42:29
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
using namespace std;

int v[110][110];
const int NMAX = 1 << 10;
int main()
{
	ifstream in("royfloyd.in");
	int n;
	in >> n;
	for (int i = 1; i <= n; i++) {
		for (int j = 1; j <= n; j++) {
			in >> v[i][j];
			if (!v[i][j] && i != j)
				v[i][j] = NMAX;
		}
	}
	for (int k = 1; k <= n; k++)
		for (int i = 1; i <= n; i++)
			for (int j = 1; j <= n; j++)
				if (v[j][i] > v[j][k] + v[k][i])
					v[j][i] = v[j][k] + v[k][i];

				
	ofstream out("royfloyd.out");
	for (int i = 1; i <= n; i++)
		for (int j = 1; j <= n; j++)
			out << (v[i][j] != NMAX ? v[i][j] : 0) << " \n"[j == n];
	in.close();
	out.close();
	return 0;
}