QOJ.ac

QOJ

時間限制: 3 s 記憶體限制: 1024 MB 總分: 100

#3973. 利他主义的两栖动物

统计

一群青蛙意外掉进了一个大坑的底部。它们逃离坑的唯一方法是跳出去。每只青蛙 $i$ 由三个参数 $(l_i, w_i, h_i)$ 描述,其中 $l_i$ 是它的跳跃能力,$w_i$ 是它的体重,$h_i$ 是它的身高。跳跃能力决定了青蛙能跳多高。如果一只青蛙的跳跃能力严格大于坑的深度,它就可以直接逃离坑。然而,这些青蛙是利他的。它们的目标不是自私地逃走并将跳跃能力不足的青蛙留在坑里,而是共同协作,尽可能多地拯救青蛙。

图片来自 szftlgs.com, CC0

青蛙们意识到,如果青蛙 $A$ 在跳跃前爬到青蛙 $B$ 的背上,那么青蛙 $A$ 逃离坑的机会就更大了:如果 $h_B + l_A$ 严格大于坑的深度,它就能逃离。

此外,如果背着青蛙 $A$ 的青蛙 $B$ 爬到青蛙 $C$ 的背上,那么青蛙 $A$ 的情况会更好:如果 $h_C + h_B + l_A$ 严格大于坑的深度,它现在就能逃离坑。

青蛙们可以通过这种方式搭建更高的青蛙堆,唯一的限制是:任何青蛙所承载的其他青蛙的总重量不得等于或超过它自身的体重。一旦一个青蛙堆成功帮助一只青蛙逃离,堆中的青蛙就会跳回坑底,然后它们可以重新组成一个新的青蛙堆(可能由不同的青蛙组成)。问题很简单:假设青蛙们协作以最大化逃离数量,最终有多少只青蛙能逃离坑?

输入格式

第一行包含两个整数 $n$ 和 $d$ ($1 \le n \le 100\,000, 1 \le d \le 10^8$),其中 $n$ 是青蛙的数量,$d$ 是坑的深度(单位为 $\mu\text{m}$)。接下来 $n$ 行,每行包含三个整数 $l, w, h$ ($1 \le l, w, h \le 10^8$),分别代表一只青蛙的跳跃能力 $l$ ($\mu\text{m}$)、体重 $w$ ($\mu\text{g}$) 和身高 $h$ ($\mu\text{m}$)。所有青蛙的体重之和最多为 $10^8\,\mu\text{g}$。

输出格式

输出能够逃离坑的青蛙的最大数量。

样例

输入格式 1

3 19
15 5 3
12 4 4
20 10 5

输出格式 1

3

输入格式 2

3 19
14 5 3
12 4 4
20 10 5

输出格式 2

2

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.