QOJ.ac

QOJ

时间限制: 1 s 内存限制: 1024 MB 总分: 100 可 Hack ✓

#17529. Hacer pizza para Muto hambriento

统计

Kinesis, mientras exploraba Chu Chu Island para derrotar al Mago Oscuro, se encontró con Muto el Hambriento. Simia, quien alimentaba a Muto todos los días, le pidió ayuda a Kinesis para preparar una pizza gigante para Muto, quien se estaba quejando por hambre. Dado que Muto, con su gran tamaño, bloquea el camino hacia el Mago Oscuro, Kinesis no tuvo más remedio que aceptar la petición de Simia.

La pizza gigante que Muto desea tiene forma de cuadrícula de $N \times N$. La celda superior izquierda de la pizza es la fila $1$, columna $1$, y la celda inferior derecha es la fila $N$, columna $N$. La receta de Simia muestra la disposición de las albóndigas que deben colocarse sobre la pizza, y Kinesis debe colocar las albóndigas exactamente como indica la receta. Inicialmente, hay una albóndiga colocada por Simia en la fila $R$, columna $C$ de la pizza. La forma de una albóndiga coincide exactamente con una celda de la cuadrícula, y no puede haber más de una albóndiga en una misma celda.

Estado de la pizza cuando $N=5, R=3, C=2$ y las posiciones desde donde se puede usar la psicoquinesis fuera de la pizza

Como pisar la pizza la haría incomible, Kinesis debe completar la pizza usando psicoquinesis desde fuera de ella. El proceso para usar la psicoquinesis una vez es el siguiente:

  1. Se elige la posición desde donde usar la psicoquinesis. Las posiciones posibles son: arriba, abajo, izquierda o derecha de la pizza. La psicoquinesis comienza desde donde se encuentra Kinesis: si es desde arriba, se aplica en la dirección en la que aumentan las filas; si es desde abajo, en la dirección en la que disminuyen las filas; si es desde la izquierda, en la dirección en la que aumentan las columnas; y si es desde la derecha, en la dirección en la que disminuyen las columnas.
  2. Se elige el número de fila o columna donde aplicar la psicoquinesis. La psicoquinesis debe aplicarse paralela a la fila o columna elegida y no puede abarcar más de una fila o columna a la vez.
  3. Se aplica la psicoquinesis. Existen dos tipos de psicoquinesis:
    • Empujar (push): Empuja la albóndiga y la coloca en la celda inmediatamente anterior a la primera albóndiga con la que choque. Si hay una albóndiga en la primera celda en la dirección de la psicoquinesis antes de empujar, o si no hay albóndigas en esa dirección y la albóndiga empujada no puede quedar dentro de la pizza, la albóndiga empujada desaparece.
    • Tirar (pull): Saca la primera albóndiga con la que choque la psicoquinesis fuera de la pizza. Si no hay albóndigas en la dirección en la que se aplicó la psicoquinesis, no ocurre nada.
Uso de las habilidades de psicoquinesis: empujar (push) y tirar (pull)

Si la pizza se decora según la receta de Simia, Muto comerá la pizza con gusto y abrirá el camino hacia la siguiente región. Sin embargo, como Kinesis no sabe cuándo el Mago Oscuro destruirá el mundo, no puede perder tiempo preparando la pizza.

Intenta imprimir uno de los métodos para completar la pizza usando la psicoquinesis $2N^2$ veces o menos.

Entrada

En la primera línea se da el tamaño de la pizza $N$. ($3 \leq N \leq 50$)

En la segunda línea se dan los enteros $R$ y $C$, separados por un espacio, que representan la fila y columna de la albóndiga colocada inicialmente por Simia. ($1 \leq R, C \leq N$)

Luego, se dan $N$ líneas que contienen la disposición de las albóndigas según la receta de Simia. Cada línea contiene una cadena de longitud $N$. El $j$-ésimo carácter de la $i$-ésima línea indica si hay una albóndiga en la fila $i$, columna $j$, donde . significa una celda vacía y # significa una celda con una albóndiga.

Salida

Si es posible completar la pizza usando la psicoquinesis $2N^2$ veces o menos, imprime en la primera línea el número de veces $M$ que Kinesis usó la psicoquinesis. No es necesario que $M$ sea el mínimo. ($0 \leq M \leq 2N^2$)

Si $M$ es $1$ o más, imprime las acciones realizadas por Kinesis en las siguientes $M$ líneas, una por línea. En cada línea, imprime la posición desde donde se usó la psicoquinesis (arriba: U, abajo: D, izquierda: L, derecha: R), el número de fila o columna $X$ ($1 \leq X \leq N$), y el tipo de psicoquinesis (push para empujar, pull para tirar), separados por espacios.

Si no es posible completar la pizza usando la psicoquinesis $2N^2$ veces o menos, imprime únicamente -1 en la primera línea.

Ejemplos

Entrada 1

3
2 2
.#.
##.
...

Salida 1

2
U 2 push
L 2 push

Entrada 2

3
1 2
...
#.#
.#.

Salida 2

6
D 2 push
D 2 push
L 2 push
R 2 push
U 2 pull
U 2 pull

Entrada 3

4
1 1
....
....
....
....

Salida 3

1
L 1 pull

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.