Cod sursa(job #1701649)

Utilizator piroslPiros Lucian pirosl Data 13 mai 2016 19:27:00
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <iostream>
#include <fstream>

using namespace std;


int main(int argc, char* argv[]) 
{
	ifstream in("royfloyd.in");
	ofstream out("royfloyd.out");
	int n;
	in >> n;
	int* d = new int[n*n];
	for(int i = 0; i < n; ++i) 
	{
		for(int j = 0; j < n; ++j)
		{
			in >> d[i * n + j];
		}
	}

	for(int k = 0; k < n; ++k) 
	{
		for(int i = 0; i < n; ++i)
		{
			for(int j = 0; j < n; ++j)
			{
				if(d[i * n + k] > 0 && d[k * n + j] > 0 && 
					d[i * n + k] + d[k * n + j] < d[i * n + j])
					d[i * n + j] = d[i * n + k] + d[k * n + j];	
			}
		}
	}

	for(int i = 0; i < n; ++i)
	{
		for(int j = 0; j < n; ++j)
		{
			out << d[i * n + j] << " ";
		}
		out << "\n";
	}
	return 0;
}