1878: PL11 购物攻略
内存限制:128 MB
时间限制:1.000 S
评测方式:文本比较
命题人:
提交:11
解决:0
题目描述
某商店举行“买一送一”的促销活动:凡购买两件商品,价格较低的商品免费;
如两件价格相同,则其中任意一件商品免费。只买一件商品不享受任何优惠。
小蓝已经将想买的商品放入了购物袋。结账时,收银机会按照排列顺序依次扫描商品。
小蓝发现,如果要买的商品数量大于2,收银系统会按顺序把两件商品搭配在一起,进行买一送一的结算。
如果用两件价格相差较大的商品搭配,那就太不划算了。所以小蓝需要设计商品结算时的排列顺序。
例如:小蓝要买5件商品,价格分别是5,1,3,6,8。
如果按这个顺序通过收银机扫描,需花费19,如下图所示。
但如果按8,6,5,3,1的顺序通过收银机扫描,只需花费14,如下图所示。
输入小蓝购物袋里所有商品的价格,输出他购买这些商品最少要花多少钱。
输入
第一行一个正整数,为小蓝购物袋里的商品数量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