#AI2301. ACSL Tiles(中级)

ACSL Tiles(中级)

Description

ACSL Tiles 是一个与长方形图块有关的单人游戏。每个图块的两端都有一个位于 1~9 之间(包括 1 和 9)的个位数。游戏开始时,共 4 行,每一行都包含一个数字。游戏目标是构建行,将一个图块放在一行的右端,使得这一行的最后一个数字与图块上的一个数字匹配。图块可以改变方向;例如,图块 34 和图块 43 相同。如果一个图块不能放置在任何一行中,则放弃该图块并将其归入 discard pile。当所有图块都已放置或放弃时,求 discard pile 中所有图块上个位数的总和。

每一轮游戏开始时,从上一块已放置图块所在行之后的行开始,尝试手中的下一个图块是否可以被放在其中一行中。如需要,可循环返回第 1 行开始。游戏开始时,从第 1 行开始观察。

然而,如果刚放置的图块是 double(即图块上两位数字相同),那么必须在考虑其他匹配之前先在该行末尾放置另一个图块。如果某一图块无法放置在该行,则放弃该图块并将其归入 discard pile。

Input Format

输入一个 4 位数,这 4 位数字为第 1 行到第 4 行的初始数字。后面跟着一串包含不超过 50 个的两位整数,数字之间用一个空格隔开。每两位整数代表每个图块上的两个数字。

Output Format

按照上述规则放置图块之后,输出 discard pile 中所有图块上个位数的总和。

Explanation

示例 1:

输入:

5923
56 27 73 34 99 45 32 19 64 57 18

解析: 游戏开始时,4 行初始数字为 5, 9, 2, 3。

  1. 图块 56 放置第 1 行(匹配 5)。第 1 行末尾变为 6。

  2. 图块 27 放在第 3 行(匹配 2)。第 3 行末尾变为 7。

  3. 图块 73 旋转为 37 后放在第 4 行(匹配 3,因为第 3 行放置之后优先考虑第 4 行)。第 4 行末尾变为 7。

  4. 图块 34 无法匹配第 1, 2, 3, 4 行的末尾 (6, 9, 7, 7),归入 discard pile。

  5. 图块 99 放在第 2 行(匹配 9)。这是 double,第 2 行末尾为 9。接下来的图块必须尝试放在第 2 行。

  6. 图块 45 无法匹配第 2 行的 9,归入 discard pile。

  7. 图块 32 无法匹配第 2 行的 9,归入 discard pile。

  8. 图块 19 旋转为 91 后放在第 2 行(匹配 9)。第 2 行末尾变为 1。double 锁定解除。

  9. 图块 64 放在第 1 行(匹配 6)。第 1 行末尾变为 4。

  10. 图块 57 旋转为 75 后放在第 3 行(匹配 7)。第 3 行末尾变为 5。

  11. 图块 18 放在第 2 行(匹配 1)。第 2 行末尾变为 8。

discard pile 中的图块为 34, 45, 32。 总和 = (3+4) + (4+5) + (3+2) = 7 + 9 + 5 = 21。

5923
56 27 73 34 99 45 32 19 64 57 18
21
4687
81 72 15 89 36 21 13 67 42 93 48 83 45 47 52 94 62
86
1932
94 81 13 43 21 31 89 69 18 28 86 88 29 89 92
11
1957
32 69 87 73 31 88 62
23
1542
24 44 39 32 92 63 47 76 37 78 38
46