QOJ.ac

QOJ

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

#517. 顺序快艇骰子

الإحصائيات

Danny 有一个他喜欢玩的掌上 Yahtzee 游戏(多么 90 年代的产物!)。Yahtzee 的目标是通过将 5 个骰子的投掷结果放入 13 个类别之一来得分。下表列出了这些类别以及每个类别的得分方式:

类别 得分 类别 得分
1's 每个 1 得 1 分 3-of-a-Kind 5 个骰子点数之和
2's 每个 2 得 2 分 4-of-a-Kind 5 个骰子点数之和
3's 每个 3 得 3 分 Full House 25
4's 每个 4 得 4 分 Small Straight 30
5's 每个 5 得 5 分 Long Straight 40
6's 每个 6 得 6 分 Chance 5 个骰子点数之和
Yahtzee 50

3-of-a-Kind(三条)或 4-of-a-Kind(四条)是指 5 个骰子中至少有三个(或四个)显示相同点数的情况。Full House(葫芦)由 3 个相同点数的骰子和另外 2 个相同点数的骰子(与前三个点数不同)组成;Small Straight(小顺)是 5 个骰子中任意四个点数连续,Long Straight(大顺)是五个点数连续,Yahtzee(五条)是所有五个骰子显示相同点数。最后,Chance(机会)类别可用于任何 5 个骰子的组合。例如,如果 5 个骰子显示四个 2 和一个 5,放入 2's 类别得 8 分,放入 5's 类别得 5 分,放入 3-of-a-Kind、4-of-a-Kind 或 Chance 类别得 13 分。放入任何其他类别则得 0 分。

一场游戏包含 13 轮。在每一轮开始时,你掷出所有 5 个骰子。你可以将这 5 个骰子分配给任何未使用的类别,或者(更有可能)重新掷出任意数量的骰子(如果你愿意,甚至可以全部重掷)。你还可以再进行一次这样的操作,在最多三次投掷后,你必须将骰子放入一个未使用的类别中。13 轮结束后,所有类别都已使用,你将计算每个类别获得的总分。

在常规 Yahtzee 中,每一轮之后你都可以选择使用哪个得分类别——事实上,决定使用哪个类别是 Yahtzee 的挑战之一。Danny 通常这样玩,但正如我们所说,他玩了“很多”Yahtzee,所以有时他喜欢稍微改变一下。他最喜欢的变体之一是他所谓的“顺序 Yahtzee”(sequential yahtzee)。在这个版本中,第一组投掷后你唯一能使用的类别是 1's(他掌上游戏中的第一个类别);此后,你必须在第二轮使用 2's,依此类推(按照上表中给出的顺序),直到达到 Yahtzee 类别。

例如,假设 Danny 的游戏出现了故障,骰子只能掷出 1(这是一款相当老的游戏)。第一轮后,Danny 得到了一组五个 1。在常规 Yahtzee 中,他可以因 Yahtzee 获得 50 分,但在顺序 Yahtzee 中,他必须将其放入 1's 类别并获得 5 分。再次掷出五个 1 后,他必须将其放入 2's 类别并获得 0 分。接下来的 4 轮他都得 0 分,将五个 1 分别放入 3's、4's、5's 和 6's 类别。接下来的两轮他各得 5 分,分别将五个 1 放入 3-of-a-Kind 和 4-of-a-Kind。接下来的两轮他一无所获,在 Chance 类别中获得 5 分,最后在第 13 轮终于因 Yahtzee 获得 50 分。总共他获得了 70 分。

Danny 会记录游戏中所有的骰子投掷情况,并经常想知道他是否能比在顺序 Yahtzee 游戏中做得更好。你的任务很简单:给定一连串连续的骰子投掷结果,在顺序 Yahtzee 游戏中可能获得的最大分数是多少?好吧,也许只有题目描述看起来很简单。

输入格式

输入的第一行包含一个整数 $n$ ($65 \le n \le 195$),表示骰子投掷的总次数。随后的一行或多行包含 $n$ 个骰子投掷结果,所有值都在 1 到 6 之间。

输出格式

显示使用给定的骰子投掷结果,填满所有 13 个类别后,顺序 Yahtzee 可能获得的最大分数。不需要使用所有的投掷结果,但所使用的投掷结果必须是从第一次投掷开始的连续序列。

样例

输入 1

65
1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1 1 1 1 1

输出 1

70

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.