Introducción
Una familia de focas está varada sobre un iceberg en el Círculo Polar Ártico. Hay un transmisor de radio ubicado en el iceberg que los sellos pueden usar para pedir ayuda. Sin embargo, solo el sello de papá sabe cómo operar el transmisor de radio. Y lo que es peor, el hielo es muy resbaladizo en esta época del año, por lo que los sellos se deslizarán sin control hasta que lleguen a otro sello o se salgan del borde del iceberg, lo que hace que sea muy difícil para el sello papá alcanzar el transmisor de radio. Afortunadamente, uno de los sellos es un científico de la computación, por lo que decide escribir un programa para descubrir cómo maniobrar el sello de papá al transmisor de radio. Como no hay mucho espacio en el hielo para escribir un programa, ella decide hacer que el programa use la menor cantidad de bytes posible.
Descripción de entrada
El programa del sello recibirá información de STDIN, argumentos de línea de comando o funciones de entrada del usuario (como raw_input()). No se puede preinicializar en una variable (por ejemplo, "Este programa espera la entrada en una variable x").
La primera línea de la entrada consta de dos enteros separados por comas en la forma
A,B
A continuación hay Blíneas que consisten en Acaracteres cada una. Cada línea solo puede contener caracteres de los siguientes:
.: El frío, el frío, el océano. El mapa siempre tendrá esto como borde.#: Una parte del iceberg.a...z: Un sello que no es el sello de papá en el iceberg.D: El sello de papá en el iceberg.*: El transmisor de radio.
(Tenga en cuenta que el sello de papá siempre se anota con una mayúscula D. Una minúscula des simplemente un sello normal).
Descripción de salida
De acuerdo con las siguientes reglas con respecto a cómo se pueden mover los sellos, emite una lista de instrucciones para los sellos sobre cómo deben moverse para llevar el sello de papá al transmisor de radio.
- Regla: todos los sellos pueden moverse hacia arriba (
U), hacia abajo (D), hacia la izquierda (L) y hacia la derecha (R). No pueden deslizarse en diagonal. - Regla: Al moverse, un sello continuará moviéndose en la misma dirección hasta que choque con otro sello o caiga al mar.
- Si un sello choca con otro sello, dejará de moverse. El sello con el que chocó no se moverá.
- Si un sello cae al mar, se ahogará y desaparecerá del mapa. Es decir, no actúa como un colisionador para otros sellos y no se puede mover de nuevo.
- Regla: dos sellos no se pueden mover al mismo tiempo, tampoco se puede mover un sello mientras otro se mueve. El siguiente sello solo se puede mover una vez que el sello anterior haya dejado de moverse.
- Regla: no hay restricción con respecto a mover un sello varias veces, o el número de sellos que se ahogan.
- Regla: Una solución correcta tendrá el sello papá finales en el transmisor de radio. El sello de papá no puede simplemente pasar el transmisor mientras se desliza.
La salida constará de varias líneas, cada una en forma
A,B
¿Dónde Aestá el sello de moverse ( Dpara el sello papá, a... zpara los demás), y Bes la dirección para mover el sello (o bien U, D, L, o R). Tenga en cuenta que no necesita encontrar la ruta más corta. Cualquier ruta que lleve al sello de papá a la meta es un resultado aceptable.
Ejemplo de entradas y salidas
Entrada:
25,5
.........................
.#######################.
.####D#############*k###.
.#######################.
.........................
Salida:
D,R
Entrada:
9,7
.........
.a#####b.
.#####d#.
.##l*###.
.###m#p#.
.#D#.#c#.
.........
Salida (una salida posible de muchas):
m,R
b,L
D,U
D,R
D,D
D,L
Entrada:
26,5
..........................
.###..................###.
.l*##########v#########D#.
.###..................###.
..........................
Salida (una salida posible de muchas):
v,D
D,L
Si tiene alguna otra pregunta, por favor pregunte en los comentarios.