问题 3180 --回文串

3180: 回文串

时间限制: 1 Sec  内存限制: 256 MB
提交: 0  解决: 0
[提交][状态][讨论版][命题人:]

题目描述

小 R 有一个长度为 L 的字符串 S=s1…sl,其中只包含小写英文字母。小 R 发现,虽然 S 可能很长,但它可以分成 n 个连续的段,其中第 i (1≤i≤n) 段由ai个小写英文字母ci构成。把这n段依次拼接起来便得到S,因此 L=。相邻两段中的字符可以相同。

小 X 喜欢回文串。若一个字符串反转后与原字符串相同,就称它是回文串,例如aba、abba都是回文串,而aabbc不是。也就是说,字符串 S 是回文串,当且仅当对于所有 i (1≤i≤L),均有s[i]=s[l-1+i]。

小 X 想让小 R 把 S 改成回文串。小 R 可以将 S 中任意一个位置的字符修改成任意小写英文字母。他想用尽量少的修改满足小 X 的要求。

你需要帮助小 R 求出,他最少需要修改多少个位置的字符,才能将 S 改成回文串。

输入

从文件string.in中读入数据。

输入的第一行包含一个正整数n。

输入的第 i+1 (1≤i≤n) 行包含一个正整数ai和一个小写英文字母ci。

输出

输出到文件string.out中。

输出一行一个整数,表示小 R 最少需要修改多少个位置的字符,才能将 S 改成回文串。

样例输入

样例1
3
2 a
2 b
1 c
样例2
2
2 a
3 a
样例3
6
1000000000 a
1000000000 a
1000000000 a
1000000000 b
1000000000 b
1000000000 b

样例输出

样例1
2
样例2
0
样例3
3000000000

提示


说明/提示



样例 1 解释



小 R 的字符串 S 由 3 段构成:第 1 段由 2 个a组成,第 2 段由 2 个b组成,第 3 段由 1 个c组成,依次拼接得到 S=aabbc。



小 R 可以将最后一个字符c和倒数第二个字符b都改为a,得到回文串aabaa,共修改 2 个位置的字符。可以证明,小 R 最少需要修改 2 个位置的字符,才能将 S 改成回文串。



样例 2 解释



小 R 的字符串 S 由 2 段构成:第 1 段由 2 个a组成,第 2 段由 3 个a组成,依次拼接得到 S=aaaaa,则 S 已经是回文串,不需要修改。



样例 4



见题目目录下的string/4.in与string/4.ans。



该样例满足测试点 10∼12 的约束条件。



样例 5



见题目目录下的string/5.in与string/5.ans。



该样例满足测试点 13∼16 的约束条件。



样例 6



见题目目录下的string/6.in与string/6.ans。



该样例满足测试点 19∼21 的约束条件。



数据范围



对于所有测试数据,均有:




  • 1≤n≤2×10^5;




  • 对于所有 i (1≤i≤n),均有 1≤ai≤10^9,且 ci为小写英文字母。




来源

[提交][状态]