题意:
又到了剁手的季节,购物狂们开始行动,超市也开始行动,规定是:每买三件,可以省去1件最便宜的价格。
给出买的商品数,和每个商品的价值,求出购物狂一共赚了多少钱,呵呵。
思路:
把数据从大到小排序,把3的倍数的商品价值相加,就是答案。
实现:重写C++STL里的sort()函数的比较函数 bool compare();
代码:
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 #define MAXN 20000+10 9 10 bool cmp(int a,int b){11 if(a>b)return true;12 else return false;13 }14 class Shopaholic{15 private:16 int thingsNum;17 int price[MAXN];18 int ansNum;19 public:20 void init();21 void process();22 };23 void Shopaholic::init(){24 memset(price,0,sizeof(price));25 ansNum = 0;26 }27 void Shopaholic::process(){28 int cases;29 cin>>cases;30 while(cases--){31 init();32 cin>>thingsNum;33 for(int i = 0;i < thingsNum;i++){34 cin>>price[i];35 }36 sort(price,price + thingsNum,cmp);37 for(int i = 2;i < thingsNum;i += 3){38 ansNum += price[i];39 }40 cout< <