https://blog.csdn.net/bluecraft_m/article/details/126349040#t0
#include <bits/stdc++.h>
using namespace std;
using ll = long long;
ll b[200010],a[200010];
bool cmp(ll t,ll d){
return t>=d;
}
int main(){
ll n,m,ans=0;
cin>>n>>m;
ll l=1,r=n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int i=1;i<=m;i++){
cin>>b[i];
}
sort(b+1,b+m+1);
sort(a+1,a+n+1,cmp);
for(int i=1;i<=m;i++){
if(b[i]==1){
ans+=a[l++]*2;
}else{
break;
}
}
sort(b+1,b+m+1,cmp);
for(int i=1;i<=m;i++){
if(b[i]!=1){
ans+=a[l++]+a[r];
r-=b[i]-1;
}else{
break;
}
}
cout<<ans;
return 0;
}
btrsssssss h y jvby ji m,i om nk
dtyv sjghjkvttu denj stum
—— 本文来自火龙信奥(义乌睿码科技):义乌青少年信息学奥赛与编程教育平台,专注 CSP-J/S、NOIP、GESP 竞赛培训,线上线下融合教学,助力编程升学。网址:hlcoding.com