#SummerP0066. 贪吃佘吃糖串
贪吃佘吃糖串
Description
贪吃佘面前摆着一排长度为 的糖果,每颗糖果都有一个整数编号。
贪吃佘非常挑食。每次开吃时,他都会寻找当前这排糖果中最长的一段连续且编号相同的糖果,然后一口气把这一整段吃掉。
如果有多段糖果的长度并列最长,那么贪吃佘总会选择其中最靠左的一段。
吃掉一段糖果后,剩余的糖果会自动向中间靠拢,重新组成一排。
例如,如果当前糖果编号为 ,那么最长的连续相同编号段有两段,分别是三个 和三个 。由于三个 更靠左,所以贪吃佘会先吃掉它们。吃完之后,糖果变为 。
贪吃佘会一直按照这个规则吃下去,直到所有糖果都被吃完。
请你计算,贪吃佘一共需要吃多少次,才能把整排糖果全部吃完。
Format
Input
第一行包含一个整数 (),表示糖果的数量。
第二行包含 个整数 (),其中 表示第 颗糖果的编号。
Output
输出一个整数,表示贪吃佘按照上述规则吃完所有糖果所需要的操作次数。
Samples
4
2 5 5 2
2
5
6 3 4 1 5
5
8
4 4 4 2 2 100 100 100
3
6
10 10 50 10 50 50
4
Note
在第一个样例中,贪吃佘首先吃掉第二、第三个位置上的两个编号为 的糖果,此时剩下 。
第二次,他吃掉剩余的两个 ,所有糖果被吃完,因此答案为 。
在第二个样例中,所有糖果的编号都不同,因此每次最长的连续相同编号段长度都为 。按照"长度相同时选择最左边"的规则,贪吃佘每次都会吃掉最左侧的一颗糖果,一共需要吃 次。
在第三个样例中,最开始最长的两段分别是三个 和三个 。贪吃佘先吃掉更靠左的三个 ,然后吃掉三个 ,最后吃掉剩余的两个 2,因此一共需要 次。
在第四个样例中,贪吃佘第一次吃掉开头的两个 ,数组变为 。
第二次,他吃掉最右侧连续的两个 ,数组变为 。
第三次吃掉剩余的 ,最后一次吃掉 。
因此答案为 。