AT_abc351_c.[ABC351C] Merge the balls
普及-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个空的队列和 N 个球。第 i 个球(1≤i≤N)的大小为 2Ai。
接下来要进行 N 次操作。
在第 i 次操作中,将第 i 个球加入队列的最右端,然后重复以下步骤:
- 如果队列中的球数不超过 1,则结束本次操作。
- 如果队列中从右数第 1 个和第 2 个球的大小不同,则结束本次操作。
- 如果队列中从右数第 1 个和第 2 个球的大小相同,则将这两个球移除,并在队列最右端加入一个大小为“被移除的两个球大小之和”的新球。之后回到步骤 1,继续重复操作。
请在 N 次操作结束后,输出队列中剩余球的数量。
输入格式
输入通过标准输入按以下格式给出。
N A1 A2 … AN
输出格式
请输出 N 次操作结束后队列中剩余球的数量。
输入输出样例
输入#1
7 2 1 1 3 5 3 3
输出#1
3
输入#2
5 0 0 0 1 2
输出#2
4
说明/提示
限制条件
- 1≤N≤2×105
- 0≤Ai≤109
- 输入均为整数
样例解释 1
操作过程如下:
- 第 1 次操作后,队列中有 1 个球,大小为 22。
- 第 2 次操作后,队列中有 2 个球,大小依次为 22、21。
- 第 3 次操作后,队列中有 1 个球,大小为 23。具体过程如下:
- 在第 3 次操作中加入第 3 个球后,队列中球的大小依次为 22,21,21。
- 由于最右边两个球大小相同,将它们移除,并加入一个大小为 21+21=22 的球。此时队列中球的大小为 22,22。
- 再次发现最右边两个球大小相同,将它们移除,并加入一个大小为 22+22=23 的球,队列中只剩下 23。
- 第 4 次操作后,队列中有 1 个球,大小为 24。
- 第 5 次操作后,队列中有 2 个球,大小依次为 24、25。
- 第 6 次操作后,队列中有 3 个球,大小依次为 24、25、23。
- 第 7 次操作后,队列中有 3 个球,大小依次为 24、25、24。
因此,最后队列中球的数量为 3,输出 3。
样例解释 2
操作过程如下:
- 第 1 次操作后,队列中有 1 个球,大小为 20。
- 第 2 次操作后,队列中有 1 个球,大小为 21。
- 第 3 次操作后,队列中有 2 个球,大小依次为 21、20。
- 第 4 次操作后,队列中有 3 个球,大小依次为 21、20、21。
- 第 5 次操作后,队列中有 4 个球,大小依次为 21、20、21、22。
因此,最后队列中球的数量为 4,输出 4。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?