atcoder#ABC221D. [ABC221D] Online games

[ABC221D] Online games

配点 : 400400

問題文

あるオンラインゲームがあり、 NN 人のプレイヤーが登録しています。 サービス開始日から 1010010^{100} 日を迎えた今日、 開発者である高橋君がログイン履歴を調べたところ、 ii 番目のプレイヤーはサービス開始日を 11 日目として、 AiA_i 日目から BiB_i 日間連続でログインし、 それ以外の日はログインしていなかったことが判明しました。 すなわち、ii 番目のプレイヤーはサービス開始日から、AiA_i , Ai+1A_i+1 , \ldots , Ai+Bi1A_i+B_i-1 日目に、 かつそれらの日にのみログインしていたことが分かりました。 1kN1\leq k\leq N をみたす各整数 kk について、 サービス開始日から今日までの間で、ちょうど kk 人がログインしていた日数を答えてください。

制約

  • 1N2×1051 \leq N \leq 2\times 10^5
  • 1Ai1091 \leq A_i \leq 10^9
  • 1Bi1091 \leq B_i \leq 10^9
  • 入力は全て整数である。

入力

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

NN

A1A_1 B1B_1

A2A_2 B2B_2

::

ANA_N BNB_N

出力

次のように空白区切りで NN 個の整数を出力せよ。

D1D_1 D2D_2 \cdots DND_N

ただし、 DiD_i はちょうど ii 人がゲームにログインしていた日数を表す。

3
1 2
2 3
3 1
2 2 0

11 番目のプレイヤーは 11 日目と 22 日目に、 22 番目のプレイヤーは 22 日目と 33 日目と 44 日目に、 33 番目のプレイヤーは 33 日目だけにログインしています。 よって、11, 44 日目には 11 人が、22, 33 日目には 22 人がログインしており、 それ以外の日は誰もログインしていない事が分かります。 答えはちょうど 11 人がログインした日数が 22 日、 ちょうど 22 人がログインした日数が 22 日、 ちょうど 33 人がログインした日数が 00 日となります。

2
1000000000 1000000000
1000000000 1000000000
0 1000000000

22 人以上のプレイヤーがちょうど同じ期間にログインしていることもあり得ます。