SP399 TRANK - Team Rankings

题目描述

在一个本地业余篮球联赛进行新赛季前,当地报纸计划发布一份球队排名。这些球队分别是:Ants、Buckets、Cats、Dribblers 和 Elephants。报纸的体育编辑 Scoop McGee 从五个当地专家那里获得了球队排名,但这些专家的意见并不统一。因此,他在考虑发布一个最能反映专家意见的排名。他发现,计算某个排名的中位数排名是一个解决方案。 中位数排名的计算方式是:对于任意两个排名,例如 ACDBE 和 ABCDE,定义它们之间的距离为,在这两个排名中相对顺序不同的球队对的数量。在这个例子中,球队对 B 和 C 的顺序不一致(第一个排名中 C 在 B 之前,而第二个则反之)。另一个顺序不一致的球队对是 B 和 D,所以这两个排名之间的距离为 2。在一组排名中,中位数排名是指与所有给定排名的总距离最小的那个。(注意:可能会有多个中位数排名。)中位数排名可能不是给定的排名之一。 假设有 4 位投票者给出了以下排名:ABDCE、BACDE、ABCDE 和 ACBDE。考虑两个候选中位数排名:ABCDE 和 CDEAB。排名 ABCDE 与这四个投票排名的总距离为 1 + 1 + 1 + 1 = 4。我们称这个总和为排名 ABCDE 的值。而排名 CDEAB 的值为 7 + 7 + 7 + 5 = 26。因此,排名 ABCDE 是中位数排名,值为 4。

输入格式

输入包含多组数据。每组数据的开头是一行正整数 $n$,表示接下来有 $n$ 行排名($n$ 不超过 100)。每行包含一个由字母 A、B、C、D 和 E 组成的排列,左对齐且无空格。最后,输入以一行仅包含 0 结束,表示输入结束。

输出格式

对于每组数据,输出一行,格式如下: _排名_ 是中位数排名,值为 _值_。 其中 _排名_ 需要替换为正确的排名,_值_ 需要替换为该排名的值。如果有多个中位数排名,输出字母顺序最早的那个。 **本翻译由 AI 自动生成**