#4338. 合并球(Mergetheballs)
合并球(Mergetheballs)
题目描述
有一个空序列和 个球。第 个球 () 的大小是 。你将执行 次操作:在第 次操作中,你将第 个球添加到序列的右端,然后重复以下步骤:
-
如果序列中只有一个或没有球,结束操作。
-
如果序列中最右边的球和倒数第二个球的大小不同,结束操作。
-
如果序列中最右边的球和倒数第二个球的大小相同,移除这两个球并在序列右端添加一个新球,新球的大小等于被移除的两个球大小之和。然后,返回步骤并重复此过程。
确定 次操作后序列中剩余的球的数量。
输入格式
输入以以下格式从标准输入中给出:
输出格式
输出 次操作后序列中剩余的球的数量。
样例
1
2
7
2 1 1 3 5 3 3
1
3
1
2
5
0 0 0 1 2
1
4
样例解释
【样例1说明】
操作过程如下:
-
第一次操作后,序列有一个大小为 的球。
-
第二次操作后,序列有两个球,大小分别为 和 。
-
第三次操作后,序列有一个大小为 的球。这是通过以下步骤得到的:
-
当第三个球被添加时,序列中的球大小为 、、。
-
最右边的两个球大小相同,所以它们被移除,并添加一个大小为 的新球。现在序列中的球大小为 、。
-
再次,最右边的两个球大小相同,所以它们被移除,并添加一个大小为 的新球,留下一个大小为 的球。
-
-
第四次操作后,序列有一个大小为 的球。
-
第五次操作后,序列有两个球,大小分别为 和 。
-
第六次操作后,序列有三个球,大小分别为 、、。
-
第七次操作后,序列有三个球,大小分别为 、、。
因此,你应该输出 3,这是序列中最终的球的数量。
【样例2说明】
操作过程如下:
- 第一次操作后,序列有一个大小为 的球。
- 第二次操作后,序列有一个大小为 的球。
- 第三次操作后,序列有两个球,大小分别为 和 。
- 第四次操作后,序列有三个球,大小分别为 、、。
- 第五次操作后,序列有四个球,大小分别为 、、、。
因此,你应该输出 4,这是序列中最终的球的数量。
数据范围
所有输入值都是整数。
来源
- AtCoder ABC351C