QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 512 MB Total points: 100

#18081. Pasians w łańcuchach

Statistics

W tym zadaniu przedstawiono wariant pasjansa „Skorpion”.

Masz do dyspozycji talię 52 kart, które zostały rozdane na siedem kolumn. Każda kolumna może zawierać dowolną liczbę kart, w tym przypadki, gdy w niektórych kolumnach nie ma żadnych kart (takie kolumny nazywamy pustymi). Każda karta ma kolor ($\diamondsuit, \heartsuit, \spadesuit$ lub $\clubsuit$) oraz rangę (w rosnącej kolejności: A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K).

W każdej turze możesz wykonać następujący ruch: wybierasz kartę w dowolnej kolumnie (możesz wybrać dowolną) i przenosisz ją na dolną kartę innej kolumny wraz ze wszystkimi kartami znajdującymi się nad nią (dolna część kolumny jest przenoszona jako jedna jednostka). Kartę możesz przenieść tylko na kartę tego samego koloru o randze dokładnie o 1 większej. Na przykład, $5\spadesuit$ można przenieść tylko na $6\spadesuit$, a $A\heartsuit$ można przenieść tylko na $2\heartsuit$, jak pokazano na poniższym obrazku. Jeśli wybrana karta ma rangę K, możesz ją przenieść tylko na pustą kolumnę (wraz ze wszystkimi kartami znajdującymi się nad nią) i tylko jeśli nie leży ona na wierzchu kolumny (tzn. jeśli nad nią znajdują się inne karty).

Celem gry jest zbudowanie 4 kolumn sekwencji kolorów od króla do asa (K znajduje się na szczycie kolumny, a A na dole).

Wejście

Otrzymujesz 7 linii, z których $i$-ta opisuje $i$-tą kolumnę. $i$-ta linia zaczyna się od liczby całkowitej $k_i$ — liczby kart w $i$-tej kolumnie ($0 \le k_i \le 52$), po której następuje $k_i$ dwuznakowych ciągów opisujących karty w $i$-tej kolumnie od góry do dołu. Pierwszy symbol oznacza rangę („A”, „2”, „3”, „4”, „5”, „6”, „7”, „8”, „9”, „T”, „J”, „Q” oraz „K” odpowiednio dla A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q i K), drugi oznacza kolor („D”, „H”, „S” oraz „C” odpowiednio dla $\diamondsuit, \heartsuit, \spadesuit$ i $\clubsuit$).

Gwarantuje się, że dane wejściowe zawierają wszystkie 52 karty i że każda z nich występuje dokładnie raz.

Wyjście

Jeśli wygranie gry jest niemożliwe, wypisz „NO”. W przeciwnym razie w pierwszej linii wypisz „YES”, w drugiej linii wypisz liczbę ruchów, a w trzeciej linii wypisz karty w kolejności wykonywania ruchów. Jeśli istnieje kilka rozwiązań, wypisz dowolne z nich.

Przykład

Wejście 1

14 KD QD JD TD 9D 8D 7D 6D 5D 4D 3D 2D AD KH
12 AS 6C 5C 4C 3C 2C AC 6S 5S 4S 3S 2S
11 KS QS JS TS 9S 8S 7S 5H 4H 3H 2H
1 KC
0
11 8H 7H 6H QC JC TC 9C 8C 7C QH JH
3 AH TH 9H

Wyjście 1

YES
10
QH 6C AS KH AH QC 5H 6S TH 8H

Wejście 2

5 JH TH 9H JC AH
2 KH QH
6 6H 2C AC KD 8H 7H
6 QD JD 4H 3H KC QC
10 3S 2S AS 8S 7S 6S 5S 4S QS JS
12 3C TC 9C 8C 7C 6C 5C 4C KS TS 9S 2H
11 TD 9D 8D 7D 6D 5D 4D 3D 2D AD 5H

Wyjście 2

YES
20
JH KD 6H KS JC 8H QD KC 2H TS QS 8S 3S AH TC 3C 2C 5H 4H TD

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.