CF899E Segments Removal

题目描述

Vasya 有一个长度为 $n$ 的整数数组。 Vasya 对数组执行如下操作:每一步中,他找到最长的一段连续相等的整数(如果有多段满足条件,则选择最左边的一段),并将其删除。例如,如果 Vasya 的数组为 $[13,13,7,7,7,2,2,2]$,那么经过一次操作后会变为 $[13,13,2,2,2]$。 请计算 Vasya 需要进行多少次操作,才能将数组中的所有元素全部移除。

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 200000$),表示数组的长度。 第二行包含 $a_1, a_2, \ldots, a_n$($1 \leq a_i \leq 10^9$),表示 Vasya 的数组。

输出格式

输出一个整数,表示 Vasya 需要进行多少次操作才能将所有元素移除。

说明/提示

在第一个样例中,Vasya 首先移除第二和第三位置的两个 $5$,数组变为 $[2,2]$。接下来第二步移除第一和第二位置的两个 $2$,数组此时为空。 在第二个样例中,Vasya 需要进行五次操作才能清空数组,每次操作都移除数组的第一个元素。 在第三个样例中,Vasya 需要三次操作。第一次移除所有的 $4$,第二次移除所有的 $100$,第三次移除所有的 $2$。 在第四个样例中,第一次操作移除前两个 $10$,数组变为 $[50,10,50,50]$。第二次操作移除最后两个 $50$,数组为 $[50,10]$。第三次移除剩下的 $50$,数组变为 $[10]$。最后第四次移除唯一剩下的 $10$。此时数组为空。 由 ChatGPT 5 翻译