n,k = map(int, input().split())
lst_a = list(map(int, input().split()))
lst_b = input()
prices = []
for i in range(n):
if lst_b[i] == '1':
prices.append(lst_a[i]*0.95)
else:
prices.append(lst_a[i])
prices.sort()
total = 0
cnt = 0
for p in prices:
if total + p <= k:
total += p
cnt += 1
else:
break
print(cnt)
想复杂了,其实就按优惠后的价格从小到大排序, 然后循环累加算总价别超过k就行

京公网安备 11010502036488号