你正在参加一门编程课程,该课程通过不同类型的作业集进行评分。课程持续的天数为一个正偶数。你开始时没有任何作业集。在课程的每一天,你必须执行以下操作之一:
- 请求一个“Coding”(编程)作业集。
- 请求一个“Jamming”(干扰)作业集。
- 提交一个作业集进行评分。你必须至少拥有一个作业集才能选择此选项。如果你有多个作业集,无论其类型如何,你都必须提交最近请求的那一个。
所有作业集都是不同的。对于每种类型的作业集需要提交多少份没有要求。一旦你提交了一个作业集,你就不再拥有该作业集。在课程结束前未提交的任何作业集都不会为你带来分数。
作业集是从一位人工智能助教处请求并提交给它的。奇怪的是,助教有不同的情绪——在每一天,它要么处于“Coding”情绪,要么处于“Jamming”情绪。
当你请求一个作业集时: 如果请求的主题与助教的情绪匹配,它会分配一个最高分为 10 分的作业集。 如果请求的主题与助教的情绪不匹配,它会分配一个最高分为 5 分的作业集。
当你提交一个作业集时: 如果提交的作业集主题与当天的助教情绪匹配,它会给你该作业集的最高分数。 如果提交的作业集主题与当天的助教情绪不匹配,它会给你比该作业集最高分数少 5 分的分数。
例如: 如果你在助教处于“Coding”情绪的那一天请求一个“Coding”作业集,并在它处于“Jamming”情绪的那一天提交它,你将获得 5 分:该作业集最高分为 10 分,但助教给出的分数比最高分少 5 分。 如果你在助教处于“Coding”情绪的那一天请求一个“Jamming”作业集,并在它处于“Jamming”情绪的那一天提交它,你将获得 5 分:该作业集最高分为 5 分,且助教给出了该作业集的最高分数。
多亏了一位非常了解助教的资深同事的帮助,你知道课程每一天助教的情绪。你能够获得的最高总分是多少?
输入格式
输入的第一行包含测试用例的数量 $T$;接下来是 $T$ 个测试用例。每个测试用例由一行包含 $C$ 和/或 $J$ 字符的字符串 $S$ 组成。$S$ 的第 $i$ 个字符表示助教在课程第 $i$ 天的情绪。如果是 $C$,则它处于“Coding”情绪;如果是 $J$,则它处于“Jamming”情绪。
输出格式
对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),$y$ 是该用例你能获得的最高分数。
数据范围
$1 \le T \le 100$。 $S$ 的长度为偶数。
小型数据集(测试集 1 - 可见) $2 \le S$ 的长度 $\le 50$。
大型数据集(测试集 2 - 隐藏) $2 \le S$ 的长度 $\le 20000$。 数据集中所有 $S$ 的长度之和最多为 $150000$。
样例
样例输入 1
5 CCJJ CJCJ CJJC CJJJ CCCCCC
样例输出 1
Case #1: 20 Case #2: 10 Case #3: 20 Case #4: 15 Case #5: 30
说明
对于样例 #1,以下策略是最优的: 第 1 天:请求一个“Coding”作业集(记为 C1)。 第 2 天:提交 C1。 第 3 天:请求一个“Jamming”作业集(记为 J1)。 第 4 天:提交 J1。
对于样例 #2、#3 和 #4,以下策略是最优的:请求 C1,请求 J1,提交 J1,提交 C1。
以样例 #2 为例,请注意你不能请求 C1,请求 J1,然后提交 C1。只能提交最近请求的作业集。
在样例 #5 中,你可以交替进行:在一天请求一个“Coding”作业集,并在第二天提交它。