1.摘苹果。树上有n个苹果,小明身高160cm,板凳高度40cm。每个苹果大小不一样。摘苹果和搬板凳分别需要消耗1个能量点。假设小明共有ey个能量点。则如何摘能使小明摘到苹果的总重量最大。
编写程序思路:先按苹果高度(小于等于160,大于160且小于等于200)将数据分别存储在apple_a,apple_b中,并按苹果重量降序排列。再对两组数据进行比较:若消耗2个能量点的最重苹果大于消耗1个能量点的最重两个苹果之和,则摘下消耗2个能量点的最重苹果,否则摘下消耗1个能量点的最重苹果。苹果的高度与重量存储在列表apple中,每个元素中的第一个表示高度(cm),第二个表示苹果重量(g)。如apple=[[100,202],[210,300],[170,400],[110,100],[140,150],[180,340]],ey=5,则摘下的苹果:[170,400][100,202][180,340]。
请回答下列问题:
(1)若apple=[[200,102],[205,200],[160,400],[150,304],[130,189],[175,104],[188,350]],能量点数ey=6,则摘到的总重量最大是
g。
(2)定义sort(d)函数,参数d的每个元素由高度与重量构成。函数功能是按苹果重量降序排列,函数返回d。则①处合适的代码为
。
(3)定义link(d)函数。函数功能将列表d创建成链表。则②处合适的代码是
。
(4)实现摘苹果的主程序如下,请在划线处填入合适的代码。