# 小偷來到了一個神祕的王宮,突然眼前一亮,發現5個寶貝,每個寶貝的價值都不一樣,且重量也不一樣,但是小偷的揹包攜帶重量有限,所以他不得不在寶貝中做出選擇,才能使偷到的財富最大,請你幫助小偷計算一下。
#
# 輸入描述:
#
# 寶貝價值:6,3,5,4,6
#
# 寶貝重量:2,2,6,5,4
#
# 小偷揹包容量:10
#
# 輸出描述:
#
# 偷到寶貝的總價值:15
def MaxMoney(file_name,cap):
# print(file_name)
# with open(file_name,'r') as file:
list1=file.readlines()
treasure_name=[]
treasure_money=[]
treasure_weight=[]
dict_treasure_average={}
dict_treasure_money={}
dict_treasure_weight={}
for i in range(0,len(list1)):
# print(list1[i].split('|')[1])
treasure_name.append(list1[i].split('|')[1].strip())
treasure_money.append(list1[i].split('|')[2].strip())
treasure_weight.append(list1[i].split('|')[3].strip())
dict_treasure_money[treasure_name[i]]=treasure_money[i]
dict_treasure_weight[treasure_name[i]]=treasure_weight[i]
dict_treasure_average[treasure_name[i]]=int(treasure_money[i])/int(treasure_weight[i])
dict_treasure_average=sorted(dict_treasure_average.items(),key=lambda x:x[1],reverse=True)
print(dict_treasure_average)
money = 0
treasure_take=[]
# print(len(dict_treasure_average))
for i in range(0,len(dict_treasure_average)):
# print(dict_treasure_weight[dict_treasure_average[i][0]])
if cap >= int(dict_treasure_weight[dict_treasure_average[i][0]]):
money += int(dict_treasure_money[dict_treasure_average[i][0]])
treasure_take.append(dict_treasure_average[i][0])
cap -= int(dict_treasure_weight[dict_treasure_average[i][0]])
print('cap %d' % cap)
print(money,treasure_take)
if __name__=='__main__':
file_name='E:\python_test\exercise0401\\treasure.txt'
with open(file_name,'r') as file:
MaxMoney(file,13)