QOJ.ac

QOJ

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

#18081. チェーン・ソリティア

Statistiques

この問題では、「スコーピオン」ソリティアの変種を扱う。

52枚のトランプが7つの列に配られている。各列には任意の枚数のカードを置くことができ、カードが1枚もない列(空の列と呼ぶ)があってもよい。各カードにはスート($\diamondsuit, \heartsuit, \spadesuit, \clubsuit$)とランク(昇順に A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K)がある。

各ターンにおいて、以下の操作を行うことができる:ある列の任意のカードを選び、そのカードの上にあるすべてのカードと一緒に、別の列の最も下のカードの上に移動させる(列の下部を1つのユニットとして移動する)。カードは、同じスートで、ランクがちょうど1大きいカードの上にのみ移動できる。例えば、$5\spadesuit$ は $6\spadesuit$ の上にのみ移動でき、$A\heartsuit$ は $2\heartsuit$ の上にのみ移動できる(下の図を参照)。もし選んだカードのランクが K である場合、そのカード(およびその上にあるすべてのカード)は、空の列にのみ移動できる。ただし、そのカードが列の先頭(一番上)にある場合は移動できない。

ゲームの目的は、キングからエースまでのスートの並びを4つの列に構築することである(Kが列の先頭、Aが末尾となる)。

入力

7行が与えられ、$i$ 行目は $i$ 番目の列を表す。各行は、その列のカード枚数 $k_i$ ($0 \le k_i \le 52$) で始まり、続いて上から順に $k_i$ 個の2文字の文字列がカードを表す。最初の文字はランク(A, 2, 3, 4, 5, 6, 7, 8, 9, T, J, Q, K)を、2番目の文字はスート(D, H, S, C はそれぞれ $\diamondsuit, \heartsuit, \spadesuit, \clubsuit$ に対応)を表す。

入力データには52枚のカードがすべて含まれており、それぞれがちょうど1回ずつ出現することが保証されている。

出力

ゲームに勝つことが不可能な場合は「NO」と出力せよ。可能な場合は、1行目に「YES」、2行目に移動回数、3行目に移動したカードを順に出力せよ。複数の解が存在する場合は、そのうちのいずれかを出力すればよい。

入出力例

入出力例 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
YES
10
QH 6C AS KH AH QC 5H 6S TH 8H

入出力例 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
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.