#P85. 暑期集训S组-day5贪心算法
暑期集训S组-day5贪心算法
题目描述
小镇上有一条笔直的街道,街道的每个整数点上住着一户人家,从位置 0 开始,到位置 10^18 结束。
在街道的位置 0 处住着本镇唯一的木匠,他为人善良、勤劳朴实,而且很聪明,镇上的家家户户,只要家具、木器坏了,都会打电话找木匠来修。
一天木匠接到了 N 户人家的维修电话。他工整的在自己的本子上整理出了要去维修的每户人家的位置 Xi,并根据来电描述的损坏情况评估了在每户人家维修所需要的时间 Ti。
木匠在街道上行走,每走一个单位的距离,需要消耗一个单位的时间,从第 i户人家的位置 Xi 走到 第 j户人家的位置 X,他所需要的行走时间为 |Xi - Xj|。
木匠看了看手表,估算了一下,现在出发到天黑只有 M 个单位的时间了,他必须在天黑之前尽可能给更多的人家维修,维修完最后一户人家,主人会热情的招待木匠住在他家,一起吃饭。因此你不用考虑木匠回家的时间,只需要让木匠在 M 个单位的时间内,尽可能帮助更多的人家完成维修工作。
请编程计算出,如果木匠选择部分人家来维修,最多能完成多少户人家的维修工作。
输入格式
第 1行读入 2 个整数 N 和 M,含义如题所述。
接下来 N行,每行读入 2 个整数 Xi、T 表示第 i户打维修电话人家的位置,及木匠评估为该户维修所需的时间。
输出格式
输出聪明的木匠,最多能够维修的户数。
2 10
5 5
1 100
1
提示
数据范围
对于 30% 的数据, n ≤ 20 。
对于 60% 的数据, n ≤ 1000 。
对于 100% 的数据,1 ≤ n ≤ 10^5,1 ≤ M ≤ 10^18, 0 ≤ Xi ≤ 10^18, 0 ≤ Ti ≤ 10^9。