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

来源/分类