现在题意进一步明确为:有两个背包,每件奖品最多只能放进其中一个背包;并且对于同一个背包中的任意两件奖品,它们的价值差不能超过 T。要求最多能带走多少件奖品。
设奖品价值数组为 v。
对于一个背包,如果其中任意两件奖品的价值差都不超过 T,那么只需要满足这个背包中的最大值与最小值之差不超过 T,即:
辰辰参加某知名的在线答题栏目,由于他表现出色获得了该比赛的冠军,并获得了节目组给予的丰富奖励;但是节目组希望在颁奖环节再考验下辰辰,现在请同样作为选手的你帮帮辰辰吧。
首先,节目组提供了 N 种奖品,每种奖品的价值记为 Vi;同时节目组提供给辰辰两个背包,每种奖品最多只能放入其中的一个背包里;另外,刁钻的节目组还给辰辰设置了一个额外的障碍,就是每个背包中任意两件奖品的价值差不能超过 T 。
现在的问题是,在这样的约束下,辰辰最多能带走多少件奖品呢?
第一行输入两个正整数 N 和 T,其中,N 代表节目组提供奖品的数量,T 代表约定的同一个背包里任意两件奖品价值差的阈值
接下来输入 N 行,每行一个数 Vi 代表相应的奖品价值 (N<=50000,T<=50000000,Vi<=50000000)
输出一个正整数,代表辰辰最多能带走的奖品件数
输入
6 3
5
4
2
1
8
10
输出
5