atcoder#ABC274F. [ABC274F] Fishing

[ABC274F] Fishing

配点 : 500500

問題文

数直線上を NN 匹の魚が泳いでいます。

ii の重さは WiW_i であり、時刻 00 に座標 XiX_i にいて、正方向に速さ ViV_i で移動しています。

高橋君は 00 以上の実数 tt を自由に選び、時刻 tt に一度だけ以下の行動を行います。 行動:実数 xx を自由に選ぶ。現在の座標が xx 以上 x+Ax+A 以下である魚を全て捕まえる。

捕まえることができる魚の重さの合計の最大値を求めてください。

制約

  • 1N20001 \leq N \leq 2000
  • 1A1041 \leq A \leq 10^4
  • 1Wi1041 \leq W_i\leq 10^4
  • 0Xi1040 \leq X_i\leq 10^4
  • 1Vi1041 \leq V_i\leq 10^4
  • 入力は全て整数

入力

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

NN AA

W1W_1 X1X_1 V1V_1

W2W_2 X2X_2 V2V_2

\vdots

WNW_N XNX_N VNV_N

出力

答えを出力せよ。

3 10
100 0 100
1 10 30
10 20 10
111

時刻 0.250.25 に魚 1,2,31,2,3 はそれぞれ座標 25,17.5,22.525, 17.5, 22.5 にいます。よって、この時刻に x=16x=16 として行動すると全ての魚を捕まえることができます。

3 10
100 100 100
1 10 30
10 20 10
100

時刻 00x=100x=100 として行動するのが最適解の一つです。

4 10
1000 100 10
100 99 1
10 0 100
1 1 1
1110

時刻 11x=100x=100 として行動するのが最適解の一つです。