QOJ.ac

QOJ

Limite de temps : 1.0 s Limite de mémoire : 512 MB Points totaux : 100

#18081. Solitaire en chaînes

Statistiques

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

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.