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 完成