QOJ.ac

QOJ

時間限制: 1 s 記憶體限制: 1024 MB 總分: 100 可 Hack ✓

#17529. Przygotowywanie pizzy dla głodnego Muto

统计

Kinesis, eksplorując Chu Chu Island w celu pokonania Czarnego Maga, napotkał Głodnego Muto. Simia, która codziennie karmiła Muto, poprosiła Kinesisa o pomoc w przygotowaniu wielkiej pizzy dla marudzącego Muto. Ponieważ potężny Muto blokuje drogę do Czarnego Maga, Kinesis nie ma wyboru i musi spełnić prośbę Simii.

Wielka pizza, której pragnie Muto, ma kształt siatki o wymiarach $N \times N$. Lewa górna komórka pizzy to wiersz $1$, kolumna $1$, a prawa dolna to wiersz $N$, kolumna $N$. Przepis Simii zawiera układ klopsików, które należy umieścić na pizzy, a Kinesis musi udekorować pizzę zgodnie z tym przepisem. Początkowo na pizzy znajduje się jeden klopsik umieszczony przez Simię w wierszu $R$ i kolumnie $C$. Kształt klopsika dokładnie odpowiada komórce siatki i w jednej komórce nie może znajdować się więcej niż jeden klopsik.

Stan pizzy dla $N=5, R=3, C=2$ oraz miejsca, z których można użyć psychokinezy poza pizzą

Ponieważ nadepnięcie na pizzę sprawia, że staje się ona niezdatna do jedzenia, Kinesis musi użyć psychokinezy spoza pizzy, aby ją ukończyć. Proces jednokrotnego użycia psychokinezy wygląda następująco:

  1. Wybierz miejsce użycia psychokinezy. Możliwe lokalizacje to góra, dół, lewa lub prawa strona pizzy. Psychokineza zaczyna się w miejscu, w którym znajduje się Kinesis: jeśli jest to góra, działa w kierunku zwiększających się wierszy; jeśli dół, w kierunku zmniejszających się wierszy; jeśli lewa strona, w kierunku zwiększających się kolumn; jeśli prawa strona, w kierunku zmniejszających się kolumn.
  2. Wybierz numer wiersza lub kolumny, na której zostanie użyta psychokineza. Psychokineza musi być użyta równolegle do wiersza lub kolumny i nie może obejmować więcej niż jednego wiersza lub kolumny jednocześnie.
  3. Użyj psychokinezy. Dostępne są dwa rodzaje psychokinezy:
    • push (pchnięcie): Wpycha klopsik tak, aby znalazł się w komórce bezpośrednio przed pierwszym napotkanym klopsikiem. Jeśli w pierwszym polu w kierunku użycia psychokinezy znajduje się już klopsik, lub jeśli w tym kierunku nie ma żadnego klopsika, a wpychany klopsik nie mógłby znaleźć się wewnątrz pizzy, klopsik znika.
    • pull (przyciągnięcie): Wyciąga pierwszy napotkany przez psychokinezę klopsik poza pizzę. Jeśli w kierunku użycia psychokinezy nie ma żadnego klopsika, nic się nie dzieje.

Użycie psychokinezy typu `push` oraz `pull`

Jeśli pizza zostanie udekorowana zgodnie z przepisem Simii, Muto zje ją ze smakiem i otworzy drogę do kolejnego regionu. Jednak Kinesis nie może tracić czasu na przygotowanie pizzy, ponieważ nie wiadomo, kiedy Czarny Mag zniszczy świat.

Znajdź sposób na ukończenie pizzy, używając psychokinezy nie więcej niż $2N^2$ razy.

Wejście

W pierwszej linii podano rozmiar pizzy $N$ ($3 \leq N \leq 50$).

W drugiej linii podano dwie liczby całkowite $R$ oraz $C$ oddzielone spacją, oznaczające wiersz i kolumnę początkowego klopsika umieszczonego przez Simię ($1 \leq R, C \leq N$).

Następnie podano $N$ linii przedstawiających układ klopsików zgodnie z przepisem Simii. Każda linia zawiera ciąg znaków o długości $N$. $j$-ty znak w $i$-tej linii oznacza obecność klopsika w wierszu $i$ i kolumnie $j$, gdzie . oznacza puste pole, a # oznacza pole z klopsikiem.

Wyjście

Jeśli możliwe jest ukończenie pizzy przy użyciu nie więcej niż $2N^2$ operacji, w pierwszej linii wypisz liczbę wykonanych operacji $M$. Wartość $M$ nie musi być minimalna ($0 \leq M \leq 2N^2$).

Jeśli $M \geq 1$, w kolejnych $M$ liniach wypisz wykonane akcje, po jednej w każdej linii. Każda linia powinna zawierać lokalizację użycia psychokinezy (góra: U, dół: D, lewa: L, prawa: R), numer wiersza lub kolumny $X$ ($1 \leq X \leq N$) oraz rodzaj psychokinezy (push lub pull), oddzielone spacjami.

Jeśli ukończenie pizzy przy użyciu nie więcej niż $2N^2$ operacji jest niemożliwe, wypisz w pierwszej linii -1.

Przykład

Wejście 1

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

Wyjście 1

2
U 2 push
L 2 push

Wejście 2

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

Wyjście 2

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

Wejście 3

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

Wyjście 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.