baru003のブログ

baruの雑記兼備忘録

AOJ 0227

・問題リンク Thanksgiving

・コメント
今回も問題文をしっかり読まず重複を考慮し忘れWA喰らいました(笑)
直感的に、降順ソートしてそれをm個ずつ袋に詰めていくという作業を実装してみました。

・ソース

#include<iostream>
#include<set>
using namespace std;

int main()
{
    int n,m;
    while(true){
        cin>>n>>m;
        if(n==0&&m==0)break;
        int p[n];
        multiset< int,greater<int> >list;
        //input
        for(int i=0;i<n;i++){
            cin>>p[i];
            list.insert(p[i]);
        }
        int ans=0;
        int i=1;
        for(multiset<int>::iterator it=list.begin();it!=list.end();it++){
            if(i%m==0){
                ++i;
                continue;
            }
            ans+=(*it);
            ++i;
        }
        cout<<ans<<endl;
    }
    return 0;
}