QOJ.ac

QOJ

حد الوقت: 1 s حد الذاكرة: 512 MB مجموع النقاط: 100

#3443. 空当接龙

الإحصائيات

空当接龙(FreeCell Solitaire)和计算机科学一样,主要涉及排序。其目标是使用一种相当复杂的算法来整理一副纸牌。

规则如下:一副洗好的牌被分成八叠。只有每一叠最上面的牌可以移动。一张牌 $v$ 只能移动到另一叠的顶部,前提是该列为空,或者目标叠最上面的牌颜色相反且牌面数值为 $v + 1$。例如,红桃三可以移动到梅花四的上面。你可以使用四个空当(可以把它们想象成可用的内存!),它们初始时是空的。每个空当最多可以容纳一张牌,这些牌可以按照与叠牌相同的规则进行移动。下图 H.1 展示了一些合法的移动。

图 H.1:红桃三和梅花六的合法移动

大多数空当接龙电脑游戏允许你移动一叠牌,前提是有足够的空当和空叠,通过逐张移动牌来完成此操作。例如在上图中,整个包含 5、4 和 3 的牌叠可以通过使用一些空当和一个空叠来暂时存放 3 和 4,从而移动到黑桃 6 的上方。

任务

你想要将一叠已排序的 $K$ 张牌从一叠移动到另一叠的顶部,目标叠非空,且颜色和数值匹配。你将忽略所有其他非空叠,因为否则你将不得不考虑那些叠最上面一张牌的颜色和数值,那会变得过于复杂。

即使你忽略了其他非空叠,你仍然可以使用 $N$ 个空当和 $M$ 个空叠。请问是否可以执行此移动?

输入格式

输入包含多个测试用例。每个测试用例由一行表示,包含三个数字 $N$、$M$ 和 $K$。$N$ 是空当的数量,$M$ 是空叠的数量,$K$ 是你正在移动的牌叠的大小。我们考虑的是一种广义的空当接龙,其中 $0 \le N, M \le 5$ 且 $0 \le K \le 100$。

输出格式

如果可以使用 $N$ 个空当和 $M$ 个空叠移动 $K$ 张牌的牌叠,程序应输出 “yes”,否则输出 “no”。

样例

样例输入 1

3 1 8

样例输出 1

yes

样例输入 2

3 1 9

样例输出 2

no

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.