atcoder#AGC011A. [AGC011A] Airport Bus

[AGC011A] Airport Bus

题目描述

高橋空港には,毎日飛行機で N N 人の乗客が到着します. i i 番目の乗客は時刻 Ti T_i に到着します.

高橋空港に到着する乗客は全員バスで市内へ移動します.どのバスも定員は C C 人であり,C C 人以下の乗客を乗せることができます. 飛行機の乗客は,飛行機の到着時刻よりも早く出発するバスには乗ることができません. また,飛行機の到着時刻から K K の時間が経過した後にもバスに乗れていないと,怒り出してしまいます. そのため,i i 番目の乗客は,出発時刻が Ti T_i 以上 Ti + K T_i\ +\ K 以下であるようなバスに乗れるようにしないといけません.

この条件のもとで,うまくバスの出発時刻を定めるとき,必要なバスの数の最小値を求めてください. ただし,バスの出発時刻は必ずしも整数である必要はなく,同じ時刻に出発するバスが複数あってもかまいません.

输入格式

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

N N C C K K T1 T_1 T2 T_2 : : TN T_N

输出格式

必要なバスの数の最小値を出力せよ.

题目大意

NN位乘客,第ii位将在时刻TiT_i抵达机场。

你需要发出一些公交,将所有乘客从机场送到城市。如果一班公交在时刻tt出发,那么所有满足TitTi+KT_i\leq t\leq T_i+K的乘客ii可以坐上这一班公交。但是一班公交只能坐CC人。

你可以在任意时刻发出公交(可以同时发车)求最少发车次数。

5 3 5
1
2
3
6
12
3
6 3 3
7
6
2
8
10
6
3

提示

制約

  • 2  N  100000 2\ \leq\ N\ \leq\ 100000
  • 1  C  109 1\ \leq\ C\ \leq\ 10^9
  • 1  K  109 1\ \leq\ K\ \leq\ 10^9
  • 1  Ti  109 1\ \leq\ T_i\ \leq\ 10^9
  • C, K, Ti C,\ K,\ T_i は整数

Sample Explanation 1

例えば,時刻 4.5 4.5 , 6 6 , 12 12 にバスを出発させ,次のように乗客をバスに乗せるとよいです. - 時刻 4.5 4.5 に出発するバスには,時刻 2, 3 2,\ 3 に到着する乗客を乗せる. - 時刻 6 6 に出発するバスには,時刻 1, 6 1,\ 6 に到着する乗客を乗せる. - 時刻 12 12 に出発するバスには,時刻 12 12 に到着する乗客を乗せる.