Cod sursa(job #1411891)

Utilizator OrolesVultur Oroles Data 31 martie 2015 23:57:29
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <iostream>
#include <fstream>

int m[100][100];

std::ifstream input("royfloyd.in");
std::ofstream output("royfloyd.out");

void display( int (*m)[100], int n )
{
	for ( int i = 0; i < n; ++i )
	{
		for ( int j = 0; j < n; ++j )
		{
			output << m[i][j] << " ";
		}
		output << std::endl;
	}
}


int main( int argc, char* argv[] )
{
	int N;
	input >> N;
	for ( int i = 0; i < N; ++i )
	{
		for ( int j = 0; j < N; ++j )
		{
			input >> m[i][j];
		}
	}

	for ( int k = 0; k < N; ++k )
	{
		for ( int i = 0; i < N; ++i )
		{
			for ( int j = 0; j < N; ++j )
			{
				if ( m[i][j] > m[i][k] + m[k][j] )
				{
					m[i][j] = m[i][k] + m[k][j];
				}
			}
		}
	}

	display( m, N );

	input.close();
	output.close();
}