題目連結: https://zerojudge.tw/ShowProblem?problemid=d150
# 解題思路
將商品價格排序後,每次都選最大組的去做結帳,每組最低價的就可以被省下來
# 程式碼
#include <iostream> | |
using namespace std; | |
int main(){ | |
int n; | |
while(cin>>n){ | |
for(int i=0;i<n;i++){ | |
int m,sum=0; | |
cin>>m; | |
int p[m]; | |
for(int j=0;j<m;j++) | |
cin>>p[j]; | |
for(int j=0;j<m;j++){ | |
for(int k=0;k<m;k++){ | |
if(p[k]>p[k+1]) | |
swap(p[k],p[k+1]); | |
} | |
} | |
for(int j=1;m-3*j>=0;j++) | |
sum+=p[m-3*j]; | |
cout<<sum<<endl; | |
} | |
} | |
return 0; | |
} |