P16465 [GKS 2013 Practice] Moist
题目描述
Moist 有一个爱好——收集花样滑冰的集换式卡牌。他的卡牌收藏日益增多,现在已经多得无法再堆成一摞杂乱无章了。Moist 需要按字母顺序将卡牌排序,以便在必要时能迅速找到想要的卡片。
问题是——Moist 没法真正拿起这些卡牌,因为它们会不断从他手中滑落,而汗水会造成永久性损坏。要知道,其中一些卡片可是相当昂贵的。为了方便排序,Moist 说服了 Horrible 博士给他造一个排序机器人。然而,Horrible 博士以他相当可怕的风格决定,机器人在排序过程中每移动一张卡牌,就要向 Moist 收取 $1$ 的费用。
Moist 发现机器人的排序机制非常原始。它从上到下扫描整副卡牌。每当发现一张比前一张卡牌字典序更小的卡牌时,它就会将该卡牌移动到上面堆中正确的位置。该操作花费 $1$,然后机器人继续向下扫描,一张一张地移动卡牌,直到整副牌从上到下按字典序排列为止。
正所谓祸不单行,Moist 几乎身无分文,但保持卡牌有序却是他悲惨生活中唯一剩下的乐趣。他需要知道用机器人对他的卡牌进行排序会花费他多少钱。
输入格式
第一行给出测试用例的数量 $T$。接下来是 $T$ 个测试用例。每个测试用例以包含一个整数 $N$ 的一行开始。接下来的 $N$ 行,每行包含一位花样滑冰运动员的姓名,顺序为从牌堆顶部到底部。
输出格式
对于每个测试用例,输出一行,格式为 `Case #x: y`,其中 $x$ 是测试用例编号(从 $1$ 开始),$y$ 是 Moist 使用机器人对他的卡牌进行排序所需花费的美元数。
说明/提示
### 限制
$1 \le T \le 100$。
每个姓名仅由字母和空格字符组成。每个姓名最多包含 $100$ 个字符。姓名不会以空格开头或结尾。在同一个测试用例中,不会出现重复的姓名。字典序中,空格字符排在最前,其次是大写字母,然后是小写字母。
**小数据集**
$1 \le N \le 10$。
**大数据集**
$1 \le N \le 100$。
翻译由 DeepSeek V4 Pro 完成