#2098. 放球

放球

题目描述

翁老师有 nn 个球,每个球的表面上写一个数字,值是 aia_i

他准备将所有的球按照编号从小到大的顺序依次放入一个栈中。(也就是从顶部放入)

再放球的过程中,若栈中有连续 xx 个值为 xx 的球,这些球将会消失。

现在翁老师希望你计算一下,每次 放球以后\textcolor{red}{放球以后},栈里还剩几个球。

输入描述

第一行一个正整数 nn

第二行 nn 个正整数,a1,a2,,ana_1,a_2,\cdots,a_n

输出描述

输出 nn 行,每行一个整数,第 ii 行表示放完第 ii 个球后栈中球的个数。

5
3 2 3 2 2
1
2
3
4
3

样例 1 解释

  • a1a_1 入栈,此时栈里有 11 个因此输出 11
  • a2a_2 入栈,此时栈里有 22 个因此输出 22
  • a3a_3 入栈,此时栈里有 33 个因此输出 33
  • a4a_4 入栈,此时栈里有 44 个因此输出 44
  • a5a_5 入栈,从栈顶到栈底依次是 a5=2,a4=2a_5=2,a_4=2 有连续两个 22 因此会消掉,栈里还剩 33 个因此输出 33
10
2 3 2 3 3 3 2 3 3 2
1
2
3
4
5
3
2
3
1
0

数据范围

对于 80%80\% 的数据满足

  • 1n2×1031 \le n \le 2 \times 10 ^ 3
  • 2ai2×1052 \le a_i \le 2 \times 10 ^ 5

对于 100%100\% 的数据满足

  • 1n2×1051 \le n \le 2 \times 10 ^ 5
  • 2ai2×1052 \le a_i \le 2 \times 10 ^ 5