atcoder#ABC240D. [ABC240D] Strange Balls

[ABC240D] Strange Balls

题目描述

高橋君は 2 2 以上の整数が書かれた N N 個のボールを持っており、これらを細長い筒の中に落としていきます。i  (1  i  N) i\ \,\ (1\ \leq\ i\ \leq\ N) 回目には、ai a_i が書かれたボールを落とします。

ボールは特殊な材質でできており、筒の中において k  (k  2) k\ \,\ (k\ \geq\ 2) が書かれたボールが k k 個連続すると、それら k k 個のボールは全て消えてしまいます。

i  (1  i  N) i\ \,\ (1\ \leq\ i\ \leq\ N) について、i i 個目のボールを筒の中に落とした後、筒の中に何個のボールがあるか求めてください。

输入格式

入力は以下の形式で標準入力から与えられる。

N N a1 a_1 \ldots aN a_N

输出格式

N N 行出力せよ。i  (1  i  N) i\ \,\ (1\ \leq\ i\ \leq\ N) 行目には、i i 個目のボールを筒の中に落とした後、筒の中にあるボールの個数を出力せよ。

题目大意

【题目描述】

高桥君收到了 NN 个奇怪的球,球摆成一列,每个球的表面都写着一个数字,第 ii 个球的表面数字是 aia_i

高桥君准备将所有的球从 11NN 依次放入桶中。桶是圆柱形的,底面是封死的,只能从圆柱形顶端放入。桶比较窄,桶中的球只能全部竖着叠放。

高桥君在放球的过程中,奇怪的事情发生了,如果桶中有连续 xx 个值为 xx 的球,这些球将会消失。

请你帮助高桥君计算出,从 11NN 依次放入每个球后,桶中的球有多少个?

【输入描述】

第一行一个正整数 NN

第二行 NN 个正整数,从 11NN 依次表示每个球表面的数字。

【输出描述】

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

【数据范围】

  • 1N2×1051 \le N \le 2 \times 10 ^ 5
  • 2ai2×1052 \le a_i \le 2 \times 10 ^ 51iN1 \le i \le N)。
  • 输入均为整数。
5
3 2 3 2 2
1
2
3
4
3
10
2 3 2 3 3 3 2 3 3 2
1
2
3
4
5
3
2
3
1
0

提示

制約

  • 1  N  2 × 105 1\ \leq\ N\ \leq\ 2\ \times\ 10^5
  • $ 2\ \leq\ a_i\ \leq\ 2\ \times\ 10^5\ \,\ (1\ \leq\ i\ \leq\ N) $
  • 入力は全て整数

Sample Explanation 1

筒の中は次のように変化します。 - 1 1 個目のボールを落とす。筒の中にあるボールに書かれた整数は 3 3 である。 - 2 2 個目のボールを落とす。筒の中にあるボールに書かれた整数は下から順に 3, 2 3,\ 2 である。 - 3 3 個目のボールを落とす。筒の中にあるボールに書かれた整数は下から順に 3, 2, 3 3,\ 2,\ 3 である。 - 4 4 個目のボールを落とす。筒の中にあるボールに書かれた整数は下から順に 3, 2, 3, 2 3,\ 2,\ 3,\ 2 である。 - 5 5 個目のボールを落とす。筒の中にあるボールに書かれた整数は下から順に 3, 2, 3, 2, 2 3,\ 2,\ 3,\ 2,\ 2 となるが、2 2 が書かれたボールが 2 2 個連続しているのでこれらは消え、下から順に 3, 2, 3 3,\ 2,\ 3 となる。 ![](https://img.atcoder.jp/ghi/ABC240D\_sample.png)