#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
bool cmp(int a,int b){
return a>b;
}
int main(){
queue<int>q;
int m,n;
int max=0;
int a[1001]={},b[1001]={},ans=0;
cin>>m>>n;
for(int i=0;i<m;i++){
cin>>a[i];
ans+=a[i];
}
if(n==1){
cout<<ans;
return 0;
}
sort(a,a+m,cmp);
for(int i=0;i<m;i++){
q.push(a[i]);
}
for(int i=0;i<n;i++){
b[i]=q.front();
// cout<<q.front();
q.pop();
// cout<<b[i]<<" ";
}
int i=0,sum=0;
while(!q.empty()){
b[i]--;
if(b[i]==0){
b[i]=q.front();
q.pop();
}
cout<<b[i]<<" ";
i++;
if(i%n==0){
sum++;
i=0;
}
}
for(int i=0;i<n;i++){
if(b[i]>max){
max=b[i];
}
}
sum+=max;
// for(int i=0;i<m;i++){
// cout<<a[i]<<" ";
// }
cout<<sum;
}
无限循环 测试数据 6 30 9 8 7 8 6 6