logo AlgoBeat OnlineJudge
登录 注册

#10061. [Sleeping Cup #1] A. Sleeping pairs

内存限制:512 MiB 时间限制:1000 ms 输入文件:pairs.in 输出文件:pairs.out
题目类型:传统 评测方式:文本比较
上传者: 匿名

题目描述

注记:由于质量原因,本场的 B 题没有搬入;由于评测原因,本场的 D 题没有搬入。

Sleeping Alligator 是一间卧铺车厢的管理员。这间车厢内有若干张床,每张床都分上下铺(即每张床可以睡 个人)。这天,正当它满载着乘客行驶时,车厢里突然停电了!

这立刻激起了乘客们的愤怒。他们要求 Sleeping Alligator 妥善处理这个问题,把他们转移到另一间车厢。同时,有些人借此向 Sleeping Alligator 抱怨,他们的上铺(或下铺)睡觉时打呼噜,使得他们无法入睡。

Sleeping Alligator 向你总结了它所需要解决的问题:

  • 车厢内共有 张床,每张床都分上下铺。
  • 每张床位上都有一位乘客。有的乘客会打呼噜(用 Z 表示),有的乘客不会(用 X 表示)。
  • 乘客们希望同一张床中上下铺乘客的属性(即是否打呼噜)相同。
  • Sleeping Alligator 可以做以下操作,每操作一次(每次只能选择下面一项进行操作)花费 点体力
    • 交换两个相邻的乘客(相邻两床的上铺,相邻两床的下铺,或者同一床的上下铺)。
    • 移走一张上下铺安排符合乘客预期的床。
  • 现要求移走所有的床(保证可以实现),问最少需要多少点体力。

输入格式

第一行一个正整数

下面 行,每行 个字符,表示一张床上铺和下铺的人员情况。

保证 XZ 均有偶数个。

输出格式

一行一个正整数,表示答案。

样例

样例输入 #1

3
XZ
ZZ
ZX

样例输出 #1

4

样例输入 #2

18
XX
XX
XX
XX
XZ
ZX
XZ
ZZ
XZ
XZ
ZZ
XZ
ZX
XZ
XX
XX
XX
XX

样例输出 #2

24

数据范围与提示

样例 1 解释

一种最优的操作方案是:移走第 张床,交换剩下两张床的上铺(或下铺),再分别移走剩下的两张床,一共花费 点体力。