atcoder#ARC069C. [ARC069E] Frequency

[ARC069E] Frequency

配点 : 700700

問題文

すぬけくんは数列を作るのが好きです。

11 から NN までの番号がついた石の山があります。 ii 番の石の山は aia_i 個の石からなります。

すぬけくんは以下の手順により長さ ai\sum a_i の数列 ss を構成することにしました。

  1. 石の数が最大である山のうち、最も番号が小さい山の番号を xx として、ss の末尾に xx を追加する
  2. 石が 11 個以上存在する山を 11 つ選んで、選んだ山から石を 11 つ取り除く
  3. 石が 11 個以上存在する山が存在するなら 1.1. へ、そうでなければ数列の構成を終了する

ss が辞書順で最小の数列となるようにしたとき、ss1,2,3,...,N1,2,3,...,N という数がそれぞれいくつ含まれるか求めなさい。

制約

  • 1N1051 \leq N \leq 10^{5}
  • 1ai1091 \leq a_i \leq 10^{9}

入力

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

NN

a1a_1 a2a_2 ...... aNa_{N}

出力

答えを NN 行に出力せよ。ii 行目では辞書順で最小の ss における ii の出現回数を出力せよ。

2
1 2
2
1

以下の手順で辞書順最小であるような数列が構成できます。

  • 石の数が最大であるような山は 22 番なので 22ss に追加する。その後、番号 22 の山から石を 11 つ取り除く。
  • 石の数が最大であるような山は 11 番と 22 番なので、最も番号が小さい 11ss に追加する。その後、番号 22 の山から石を 11 つ取り除く。
  • 石の数が最大であるような山は 11 番なので 11ss に追加する。その後、番号 11 の山から石を 11 つ取り除く。

このときできる数列は (2,1,1)(2,1,1) となります。1122 つ含まれ、2211 つ含まれます。

10
1 2 1 3 2 4 2 5 8 1
10
7
0
4
0
3
0
2
3
0