pissingboy @ 2019-10-13 14:00:06
A = input().split()
n = int(A[0])
s = int(A[1])
B = input().split()
a = int(B[0])
b = int(B[1])
apple_list = [] # 建立苹果和所需力气的列表
strong_list = [] # 建立能够摘到苹果的力气列表
Num = 0
for i in range(n): # 输入苹果与力气的数组
la = input().split()
apple_list.append(la) #追加输入苹果与力气元素
for j in range(n): #由苹果与力气的列表中筛选能够够着到的苹果元素,将其力气元素追加入力气列表中
if int(apple_list[j][0]) <= a + b:
strong_list.append(apple_list[j][1])
strong_list.sort() # 对力气列表升序排序
for k in range(len(strong_list)): # 对力气列表元素顺序求和
Num += int(strong_list[k])
if Num == s: #当剩余力气等于求和结果时中断循环,返回结果为k+1,因为k起始值为0
print(k+1)
break
if Num > s: #当剩余力气小于求和结果时,中断循环,返回结果为k。
print(k)
break
by wuzhaoxin @ 2019-10-13 14:23:02
@pissingboy 你这个假如能摘的可以全部摘掉的话是不是没有输出
by pissingboy @ 2019-10-13 14:36:51
明白你的意思了,我再试试
by pissingboy @ 2019-10-13 14:46:14
增加了一句
if k == len(strong_list)-1 and Num < s:
print(k+1)
还是不能过
by pissingboy @ 2019-10-14 10:56:07
@wuzhaoxin 又发现一个问题,就是力气列表为空的时候没有考虑。修改后还只是过了两个点。
by wuzhaoxin @ 2019-10-14 14:15:10
@pissingboy 你sort的时候是按字典序sort的。。。
by pissingboy @ 2019-10-14 19:52:42
@wuzhaoxin 非常感谢,一语惊醒梦中人,总算通过了,按字典排序 112是排在12前面的,原来没注意到,再次感谢!!