#aBC351C. [ABC351C] Merge the balls

[ABC351C] Merge the balls

AT_abc351_c [ABC351C] Merge the balls

题目描述

有一个空的队列和 NN 个球。第 ii 个球(1iN1\leq i\leq N)的大小为 2Ai2^{A_i}

接下来要进行 NN 次操作。
在第 ii 次操作中,将第 ii 个球加入队列的最右端,然后重复以下步骤:

  1. 如果队列中的球数不超过 11,则结束本次操作。
  2. 如果队列中从右数第 11 个和第 22 个球的大小不同,则结束本次操作。
  3. 如果队列中从右数第 11 个和第 22 个球的大小相同,则将这两个球移除,并在队列最右端加入一个大小为“被移除的两个球大小之和”的新球。之后回到步骤 1,继续重复操作。

请在 NN 次操作结束后,输出队列中剩余球的数量。

输入格式

输入通过标准输入按以下格式给出。

NN A1A_1 A2A_2 \ldots ANA_N

输出格式

请输出 NN 次操作结束后队列中剩余球的数量。

输入输出样例 #1

输入 #1

7
2 1 1 3 5 3 3

输出 #1

3

输入输出样例 #2

输入 #2

5
0 0 0 1 2

输出 #2

4

说明/提示

限制条件

  • 1N2×1051\leq N \leq 2\times 10^5
  • 0Ai1090\leq A_i \leq 10^9
  • 输入均为整数

样例解释 1

操作过程如下:

  • 11 次操作后,队列中有 11 个球,大小为 222^2
  • 22 次操作后,队列中有 22 个球,大小依次为 222^2212^1
  • 33 次操作后,队列中有 11 个球,大小为 232^3。具体过程如下:
    • 在第 33 次操作中加入第 33 个球后,队列中球的大小依次为 22,21,212^2, 2^1, 2^1
    • 由于最右边两个球大小相同,将它们移除,并加入一个大小为 21+21=222^1+2^1=2^2 的球。此时队列中球的大小为 22,222^2, 2^2
    • 再次发现最右边两个球大小相同,将它们移除,并加入一个大小为 22+22=232^2+2^2=2^3 的球,队列中只剩下 232^3
  • 44 次操作后,队列中有 11 个球,大小为 242^4
  • 55 次操作后,队列中有 22 个球,大小依次为 242^4252^5
  • 66 次操作后,队列中有 33 个球,大小依次为 242^4252^5232^3
  • 77 次操作后,队列中有 33 个球,大小依次为 242^4252^5242^4

因此,最后队列中球的数量为 33,输出 33

样例解释 2

操作过程如下:

  • 11 次操作后,队列中有 11 个球,大小为 202^0
  • 22 次操作后,队列中有 11 个球,大小为 212^1
  • 33 次操作后,队列中有 22 个球,大小依次为 212^1202^0
  • 44 次操作后,队列中有 33 个球,大小依次为 212^1202^0212^1
  • 55 次操作后,队列中有 44 个球,大小依次为 212^1202^0212^1222^2

因此,最后队列中球的数量为 44,输出 44

由 ChatGPT 4.1 翻译