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; }