(HDU)1678 -- Shopaholic (购物狂)

题目链接:https://vjudge.net/problem/HDU-1678

大意就是买东西的时候如果三个一起买,价格最低的可以免费。

那么对这些价格排序,每次取后面三个,最便宜的就是折扣,所有折扣求和。

有点贪心的感觉,数组没用全局变量的时候stack爆了,GG

#include <cstdio>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#include <string>
#include <cstdlib>

using namespace std;

int s[100010];
int main()
{
    int t,n,ans,i;
    scanf("%d",&t);
    while(t--)
    {
        ans=0;
        scanf("%d",&n);
        for(i=1;i<=n;i++)
            scanf("%d",&s[i]);
        sort(s+1,s+1+n);
        n=n-2; ans=0;
        while(n>0)
        {
            ans+=s[n];
            n-=3;
        }
        printf("%d
",ans);
    }
}
原文地址:https://www.cnblogs.com/ACDoge/p/6142044.html