您的位置:首页 > 运维架构

UVa 11369 - Shopaholic

2016-04-05 19:00 323 查看
题意:
又到了剁手的季节,购物狂们开始行动,超市也开始行动,规定是:每买三件,可以省去1件最便宜的价格。

给出买的商品数,和每个商品的价值,求出购物狂一共赚了多少钱,呵呵。

思路:

把数据从大到小排序,把3的倍数的商品价值相加,就是答案。

实现:重写C++STL里的sort()函数的比较函数 bool compare();

代码:

#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;

#define MAXN 20000+10

bool cmp(int a,int b){
if(a>b)return true;
else return false;
}
class Shopaholic{
private:
int thingsNum;
int price[MAXN];
int ansNum;
public:
void init();
void process();
};
void Shopaholic::init(){
memset(price,0,sizeof(price));
ansNum = 0;
}
void Shopaholic::process(){
int cases;
cin>>cases;
while(cases--){
init();
cin>>thingsNum;
for(int i = 0;i < thingsNum;i++){
cin>>price[i];
}
sort(price,price + thingsNum,cmp);
for(int i = 2;i < thingsNum;i += 3){
ansNum += price[i];
}
cout<<ansNum<<endl;

}
}

int main()
{
#ifndef ONLINE_JUDGE
freopen("D:\\acm.txt","r",stdin);
#endif // ONLINE_JUDGE
Shopaholic shopaholic;
shopaholic.process();
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: