买玩具----C++

#include <bits/stdc++.h>

using namespace std;

int a[100005],n;

long long s;

int main(){

cin>>n;

for(int i=0;i<n;i++){

cin>>a[i];

s+=a[i];

}

sort(a,a+n,greater<int>());

for(int i=2;i<n;i+=3)

s-=a[i];

cout<<s;

return 0;

}

买玩具

Description

玩具店有个活动,买2个送1个:3个玩具只要付较贵的2个玩具的钱就可以了。举个例子:

10 3 2 4 6 4 9,如果这样组合(10, 3, 2), (4, 6, 4), (9),就在第一个括号中省下2元,第二个括号中省下4元,但第三个括号不能省了,因为只有一个玩具。

苏海是个懂事的孩子,他想尽可能的为家里省钱,他能成功吗?

(注意:玩具组合的数量可以是1或者2或者3 )

Input

输入的第一行一个整数N,表示玩具的数量。

接下来的N行,每行包含一个整数, 表示每个玩具的价格。

Output

一个数,表示最终要为这些玩具付出的最小价格。

Sample Input 1 

4 
3 
2 
3 
2 

Sample Output 1

8

Sample Input 2 

6
6
4
5
5
5
5

Sample Output 2

21

Hint

【样例 1 解释】分组(3,2,2)(3)

【样例 2 解释】分组(6,4,5)(5,5,5)

Source

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值