C/Visual C - Problema en C

 
Vista:

Problema en C

Publicado por Ten (1 intervención) el 02/06/2006 21:04:03
Aplicar el algoritmo de Dijkstra para solucionar el problema de los caminos más cortos entre un nodo origen y
todos los demás nodos de un grafo dirigido.

Resumen

Las hormigas que habitan el jardín de Don José, han logrado detectar 5 puntos de exquisitas plantas donde desean
ir a alimentarse. El objetivo es encontrar los mejores caminos que unan el hormiguero y los 5 puntos de comida.
Enunciado
Un gran hormiguero se ha levantado en un sector del patio de don José. En otros sectores (otros 5 sectores, para ser
exactos), Don José ha plantado cierto tipo de plantas que son una delicia para la hormigas. Las hormigas, por
supuesto, no pueden esperar a recolectar comida y darse un festín. Pero primero hay que trazar el recorrido a
seguir.
Desde el hormiguero a un punto delicioso, deben moverse por el camino más rápido, debido a que para una
hormiga permanecer al aire libre es un constante peligro.
El objetivo de usted es, dado el mapa del jardín de Don José, y la ubicación del hormiguero y los 5 sectores
deliciosos, construya los caminos que deben seguir las hormigas.
El jardín de Don José
El jardín de Don José está dividido en varios sectores, 5 son deliciosos, el resto no. Además, en el jardín hay
distintos tipos de terreno:
% Tierra
$ Barro
# Pasto
& Agua
A las hormigas les toma cierta cantidad de segundos pasar por cada tipo de sector, y se detalla a continuación:
% 3 segundos
$ 13 segundos
# 5 segundos
& No pueden pasar.
No les cuesta nada pasar por los sectores H (hormiguero) ni A, B, C, D, E (sectores deliciosos).
Input
El input será el archivo "jardin.txt" que tendrá una matriz de 20x20, especificando el jardín de Don José.
Output
El output debe llamarse “caminos.txt” y debe ser la misma matriz recibida, sólo que debe haber un espacio en
blanco, en los sectores que se recorrieron. Además agregue cinco líneas después de la matriz, especificando el
tiempo que toma ir del hormiguero a cada punto delicioso. Imprima INALCANZABLE, si es el caso.
Acotaciones
· Si algún sector es inalcanzable, simplemente no se podrá recolectar comida de él.
· Sólo puede realizar los movimientos: arriba, abajo, izquierda y derecha (no diagonales).
· Si existe más de un camino más corto entre 2 puntos, elija cualquiera.

Input ejemplo: Archivo jardin.txt
D%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%
%%%%H%%%%%%%%%%%$$$$
%%%%%%%%%%%%%%$$$$$$
%%%%%%%%%%%%$$$$$$$$
%%%%%%%%%$$$$$$$$$%%
%%%%%%$$$$$$$$$%%%%%
%%%%$$$$$$$$$$%%%%%%
%%%%$$$$$$$$%%%%%%%%
%%%%$$$$$$$$$%%%%B%%
%%%$$$$$$$$$$$$%%%%%
%%%%$$$$$$$$$$%%%%%%
%%%%%%$$$$$$$$$$%%%%
%%%%%%%%%%%$%%%%%%%%
%%%%A%%%%%%&&&&&&&&%
%%%%%%%%%&&&%%%%%%%%
%%%%%%%&&&%%%%%%%%%%
%%%%%&&&&&%%C%%%%%%%
%%%&&&%%%&&&%%%%%%%%
%%&&&%%E%%&&&%%%%%%%
Output ejemplo:
D %%%%%%%%%%%%%%%
%%%% %%%%%%%%%%%%%%%
%%%%H $$$$
%% %%%%%%%%%$ $$$$
%% %%%%%%%%%$$$ $$$$
%% %%%%%%$$$$$$ $$%%
%% %%%$$$$$$$$$ %%%%
%% %$$$$$$$$$$% %%%%
%% %$$$$$$$$%%% %%%%
%% %$$$$$$$$$%% B%%
%% $$$$$$$$$$$$%%%%%
%% %$$$$$$$$$$%%%%%%
%% %%%$$$$$$$$$$%%%%
%%
%% A%%%%%%&&&&&&&&
%%%%%%%%%&&&%%%%%%%
%%%%%%%&&&%%%%%%%%%
%%%%%&&&&&%%C
%%%&&&%%%&&&%%%%%%%%
%%&&&%%E%%&&&%%%%%%%
H-A 45
H-B 87
H-C 130
H-D 15
H-E INALCANZABLE

ayuda =)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder