(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\n",ans); } }