小 Z 做了一个梦,梦到自己来到一个金矿。他现在要把尽可能多的金子弄走。因为金子很重,他无法长时间的搬运,只能通过他的魔板运走。
魔板是一根长为 L、宽度为 1 的木板,可以飞在空中。金块的宽度也是 1,小 Z 只能把金块横放(金块的宽与魔板的宽对齐)在魔板上。
为了防止金块掉落,金块之间不能相互覆盖,而且金块的重心必须在魔板上。
请你帮小 Z 算算,最多可以运走多少重量的金块。
第一行两个整数 n 和 L,表示金块的数量和木板的长度。
接下来 n 行,每行两个值,表示一块金块的长度和重量。
输出可以运走的金块的最大重量。
3 7
4 1
2 1
8 1
2
3 7
4 2
2 1
8 4
6
3 5
4 1
2 2
8 9
11
1 1
10 3
3
可以把第一块金子和第二块金子,全部放在魔板里面,总共得到的重量为 1+1=2。
可以把第二块金子和第三块金子,都放一半在魔板上,这样重心一定在魔板上,魔板上金子的长度为 2/2+8/2=5≤5,总共得到的重量为 2+9=11。
对于 30% 的数据,1≤n≤10;
前 50% 的数据,所有金块和魔板的长度都是偶数。
对于 70% 的数据,1≤n≤50,1≤L≤400;
对于 100% 的数据,1≤n≤1000,1≤L≤4000
金子的长度范围 [1,10000], 金子的重量 [1,105]; 求个代码,回复就关注