#J50004. 合并球
合并球
问题描述
有一个空的队列和 个球。第 个球()的大小为 。
接下来按顺序进行 次操作。在第 次操作中,将第 个球加入队列的最右端,然后重复以下步骤:
- 如果队列中的球数不超过 ,则结束本次操作;
- 如果队列中从右数第 个和第 个球的大小不同,则结束本次操作;
- 如果队列中从右数第 个和第 个球的大小相同,则将这两个球移除,并在队列最右端加入一个大小为“被移除的两个球大小之和”的新球。之后回到步骤 1,继续重复检查。
请在 次操作全部结束后,输出队列中剩余球的数量。
输入格式
第一行输入一个整数 ,表示球的数量。
第二行输入 个整数 。
输出格式
输出一个整数,表示 次操作结束后队列中剩余球的数量。
样例输入 1
7
2 1 1 3 5 3 3
样例输出 1
3
样例输入 2
5
0 0 0 1 2
样例输出 2
4
说明
样例 1 解释:
- 第 次操作后,队列中为 ,共 个球;
- 第 次操作后,队列中为 ,共 个球;
- 第 次操作后:
- 加入第 个球后队列为 ;
- 最右侧两球大小相同,合并为 ,此时队列为 ;
- 再次发现最右侧两球大小相同,合并为 ,此时队列为 ,共 个球;
- 第 次操作后,加入 ,与栈顶 合并为 ,队列为 ,共 个球;
- 第 次操作后,队列为 ,共 个球;
- 第 次操作后,队列为 ,共 个球;
- 第 次操作后,队列为 ,共 个球。
最终队列中剩余 个球。
评测数据规模
对于所有评测数据:
- 所有输入均为整数