Dans ce problème, une variante du solitaire « Scorpion » est présentée.
Vous disposez d'un jeu de 52 cartes à jouer réparties en sept colonnes. Chaque colonne peut contenir un nombre arbitraire de cartes, y compris des cas où il n'y a aucune carte dans certaines colonnes (nous appelons ces colonnes vides). Chaque carte possède une enseigne ($\diamondsuit, \heartsuit, \spadesuit$ ou $\clubsuit$) et une valeur (par ordre croissant : A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K).
À chaque tour, vous êtes autorisé à effectuer l'action suivante : vous choisissez la carte actuelle dans une colonne (vous pouvez en choisir n'importe laquelle) et vous la déplacez sur la carte du bas d'une autre colonne, avec toutes les cartes situées au-dessus d'elle (une partie inférieure de colonne est déplacée comme une seule unité). Vous n'êtes autorisé à déplacer la carte actuelle que sur une carte de la même enseigne et d'une valeur supérieure exactement de 1. Par exemple, $5\spadesuit$ ne peut être déplacé que sur $6\spadesuit$, et $A\heartsuit$ ne peut être déplacé que sur $2\heartsuit$, comme illustré dans l'image ci-dessous. Si la carte actuelle a pour valeur K, vous n'êtes autorisé à la déplacer que sur une colonne vide (avec toutes les cartes situées au-dessus d'elle également) et seulement si elle repose sur une autre carte (pas au sommet d'une colonne).
Le but du jeu est de construire 4 colonnes de séquences d'enseignes du roi à l'as (K est en haut de la colonne, et A est en bas).
Entrée
Vous recevez 7 lignes, dont la $i$-ième décrit la $i$-ième colonne. La $i$-ième ligne commence par un entier $k_i$ — le nombre de cartes dans la $i$-ième colonne ($0 \le k_i \le 52$), suivi de $k_i$ chaînes de deux symboles qui décrivent les cartes dans la $i$-ième colonne de haut en bas. Le premier symbole encode une valeur (« A », « 2 », « 3 », « 4 », « 5 », « 6 », « 7 », « 8 », « 9 », « T », « J », « Q » et « K » pour A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q et K respectivement), le second encode une enseigne (« D », « H », « S » et « C » pour $\diamondsuit, \heartsuit, \spadesuit$ et $\clubsuit$ respectivement).
Il est garanti que les données d'entrée contiennent les 52 cartes et que chacune d'entre elles apparaît exactement une fois.
Sortie
S'il est impossible de gagner la partie, affichez « NO ». Sinon, affichez « YES » sur la première ligne, le nombre de coups sur la deuxième ligne, et les cartes dans l'ordre des tours effectués sur la troisième ligne. S'il existe plusieurs solutions, affichez-en n'importe laquelle.
Exemples
Entrée 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
Sortie 1
YES 10 QH 6C AS KH AH QC 5H 6S TH 8H
Entrée 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
Sortie 2
YES 20 JH KD 6H KS JC 8H QD KC 2H TS QS 8S 3S AH TC 3C 2C 5H 4H TD