#835. 拔河比赛的势均力敌
拔河比赛的势均力敌
题目背景
运动会上,班级要举办一场拔河比赛。班里共有 N 名同学报名。第 i 名同学的体重是 w_i,在班级里的人气热度为 v_i。
作为体育委员,你需要把这 N 名同学分为"左队"、"右队"和"啦啦队(不参与拔河)"三组。
为了保证比赛公平,左队和右队的总体重之差的绝对值不能超过 L。
在此前提下,你希望参与拔河的两队同学的总人气热度之和最大(啦啦队的热度不计入其中)。
题目描述
给定 N 名同学的体重 w_i 和热度 v_i,以及允许的最大体重差 L。将同学分为左队、右队和啦啦队三组,使得左队和右队的体重差不超过 L,且两队的总热度最大。
输入格式
第一行包含两个整数 N 和 L,表示报名人数和允许的最大体重差。
接下来 N 行,每行两个整数 w_i 和 v_i,表示第 i 位同学的体重和人气热度。
输出格式
输出一个整数,表示满足体重差条件下的最大总人气热度。如果一个人都不选,热度为 0。
样例输入
4 2
10 50
11 60
8 40
9 45
样例输出
195
样例解释 将体重为 10 和 9 的同学分到左队(总重19)。 将体重为 11 和 8 的同学分到右队(总重19)。 两队体重差为 0 ≤ 2(极度公平)。 四个人都参与了拔河,总热度为 50 + 60 + 40 + 45 = 195。
数据范围
1 ≤ N ≤ 100,0 ≤ L ≤ 1000,1 ≤ w_i ≤ 20,1 ≤ v_i ≤ 1000。
(注:所有同学体重总和不超过 2000,可用 2000 作为数组下标偏移量)。
统计
相关
在以下作业中: