題目連結: 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;
}
更新於 閱讀次數

用實際行動犒賞爆肝的我😀

Zrn Ye LinePay

LinePay