QOJ.ac

QOJ

Límite de tiempo: 1.0 s Límite de memoria: 512 MB Puntuación total: 100

#18081. Solitario de cadenas

Estadísticas

En este problema se presenta una variante del solitario "Scorpion".

Se le entrega una baraja de 52 cartas repartidas en siete columnas. Cada columna puede tener un número arbitrario de cartas, incluyendo casos en los que no hay cartas en algunas columnas (a las que llamamos columnas vacías). Cada carta tiene un palo ($\diamondsuit, \heartsuit, \spadesuit$ o $\clubsuit$) y un rango (en orden creciente: A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K).

En cada turno, se le permite realizar lo siguiente: elige la carta actual en alguna columna (puede elegir cualquiera) y muévela sobre la carta inferior de otra columna junto con todas las cartas que están encima de ella (una parte inferior de una columna se mueve como una sola unidad). Solo se le permite mover la carta actual sobre una carta del mismo palo y con un rango exactamente mayor en 1. Por ejemplo, $5\spadesuit$ solo puede moverse sobre $6\spadesuit$, y $A\heartsuit$ solo puede moverse sobre $2\heartsuit$, como se muestra en la imagen a continuación. Si la carta actual tiene rango K, solo se le permite moverla sobre una columna vacía (junto con todas las cartas que están encima de ella) y solo si se encuentra sobre otra carta (no en la parte superior de una columna).

El objetivo del juego es construir 4 columnas de secuencias de palos desde el rey hasta el as (K en la parte superior de la columna y A en la parte inferior).

Entrada

Se le proporcionan 7 líneas, donde la $i$-ésima describe la $i$-ésima columna. La $i$-ésima línea comienza con un entero $k_i$ — el número de cartas en la $i$-ésima columna ($0 \le k_i \le 52$), seguido de $k_i$ cadenas de dos símbolos que describen las cartas en la $i$-ésima columna de arriba hacia abajo. El primer símbolo codifica un rango ("A", "2", "3", "4", "5", "6", "7", "8", "9", "T", "J", "Q" y "K" para A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q y K respectivamente), el segundo codifica un palo ("D", "H", "S" y "C" para $\diamondsuit, \heartsuit, \spadesuit$ y $\clubsuit$ respectivamente).

Se garantiza que los datos de entrada contienen las 52 cartas y que cada una de ellas aparece exactamente una vez.

Salida

Si es imposible ganar el juego, imprima "NO". De lo contrario, en la primera línea imprima "YES", en la segunda línea imprima el número de movimientos y en la tercera línea imprima las cartas en el orden en que se realizaron los turnos. Si hay varias soluciones, imprima cualquiera de ellas.

Ejemplos

Entrada 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

Salida 1

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

Entrada 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

Salida 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.