#P16184. [Ncpc2018]Altruistic Amphibians利他的两栖动物

[Ncpc2018]Altruistic Amphibians利他的两栖动物

题目描述

一群青蛙不小心掉进了一个很深的坑里。它们唯一的逃生方式是跳出坑。

ii 只青蛙由三个参数 (li,wi,hi)(l_i,w_i,h_i) 描述,其中:

  • lil_i 表示它的跳跃能力;
  • wiw_i 表示它的重量;
  • hih_i 表示它的身高。

如果一只青蛙的跳跃能力 严格大于 坑的深度,那么它可以直接跳出坑。

不过,这些青蛙非常无私。它们不希望只有跳得高的青蛙逃出去,而是希望通过合作,让尽可能多的青蛙逃出坑。

青蛙们发现,如果青蛙 AA 站在青蛙 BB 背上再跳,那么青蛙 AA 的逃生机会就会提高:如果

hB+lAh_B+l_A

严格大于坑的深度,那么青蛙 AA 就能逃出去。

进一步地,如果青蛙 BB 背着青蛙 AA,再站到青蛙 CC 背上,那么青蛙 AA 可以在

hC+hB+lAh_C+h_B+l_A

严格大于坑的深度时逃出去。

青蛙们可以用这种方式叠成更高的“青蛙塔”。唯一限制是:任意一只青蛙背上的青蛙总重量必须 严格小于 它自己的重量。也就是说,一只青蛙不能承受总重量达到或超过自身重量的其它青蛙。

当一座青蛙塔帮助某只青蛙逃出去后,塔中剩下的青蛙会重新跳回坑底。之后它们可以重新组成新的青蛙塔,组成方式可以和之前不同。

请问在青蛙们最优合作的情况下,最多有多少只青蛙能够逃出坑?

输入格式

第一行包含两个整数 n,dn,d

  • nn 表示青蛙数量;
  • dd 表示坑的深度,单位为微米 μm\mu m

满足:

1n100000,1d108.1\le n\le 100000, \qquad 1\le d\le 10^8.

接下来 nn 行,每行包含三个整数 l,w,hl,w,h,表示一只青蛙:

  • 跳跃能力为 ll 微米;
  • 重量为 ww 微克;
  • 身高为 hh 微米。

满足:

1l,w,h108.1\le l,w,h\le 10^8.

所有青蛙的重量总和不超过 10810^8 微克。

输出格式

输出一个整数,表示最多能逃出坑的青蛙数量。

输入输出样例 #1

输入 #1

3 19
15 5 3
12 4 4
20 10 5

输出 #1

3

输入输出样例 #2

输入 #2

3 19
14 5 3
12 4 4
20 10 5

输出 #2

2