#4533. Python L11 购物攻略

Python L11 购物攻略

Background

Python L11 购物攻略(30分)

题目名称:购物攻略

题目描述:

某商店举行“买一送一”的促销活动:凡购买两件商品,价格较低的商品免费;如两件价格相同,则其中任意一件商品免费。只买一件商品不享受任何优惠。

小蓝已经将想买的商品放入了购物袋。结账时,收银机会按照排列顺序依次扫描商品。

小蓝发现,如果要买的商品数量大于2,收银系统会按顺序把两件商品搭配在一起,进行买一送一的结算。如果用两件价格相差较大的商品搭配,那就太不划算了。所以小蓝需要设计商品结算时的排列顺序。

例如:小蓝要买5件商品,价格分别是5,1,3,6,8。如果按这个顺序通过收银机扫描,需花费19,如下图所示。 image 但如果按8,6,5,3,1的顺序通过收银机扫描,只需花费14,如下图所示。 image

输入小蓝购物袋里的商品数量n和所有商品的价格,输出他购买这些商品最少要花多少钱。

输入:

第一行一个正整数,为小蓝购物袋里的商品数量n(2<=n<=20);

第二行,按字符串形式输入n个正整数(大小在1~100范围内),相邻两个正整数用一个空格分隔。每个整数代表小蓝购买的一件商品的价格。

提示:

s = input() #输入一个字符串,赋值给s

a = s.split(' ') #将字符串s按空格拆分,保存到列表a中

lis = [int(i) for i in a] #将列表a的元素转换成整数,保存到列表lis中

输出:

一个整数,为小蓝购买这些商品最少要花的钱数。

输入样例:

5

5 1 3 6 8

输出样例:

14

Limitation

1s, 1024KiB for each test case.