(感谢大佬)
#include<iostream>
#include<algorithm>
using namespace std;
struct Q{
int s,q;
}a[10005];
int v[10005];
int cmp(Q a,Q b){
if(a.s==b.s){
return a.q>b.q;
}
//if(a.q==b.q){
// return a.s<b.s;
//}
return a.s<b.s;
}
int main(){
int m,n;
cin>>m>>n;
for(int i=1; i<=n; i++){
cin>>a[i].s;
}
for(int i=1; i<=n; i++){
cin>>a[i].q;
}
sort(a+1,a+n+1,cmp);
// for(int i=1; i<=n; i++){
// cout<<a[i].s<<" "<<a[i].q<<endl;
// }
for(int i=1; i<=n; i++){
if(v[a[i].s]==0){
v[i]=a[i].q;
}else{
// cout<<a[i].s<<" "<<a[i].q<<endl;
int minn=1e9,f=0;
for(int j=1; j<=a[i].s; j++){
if(v[j]<a[i].q){
if(minn>v[j]){
minn=v[j];
f=j;
}
}
}
if(f==0){
m-=a[i].q;
}else{
// cout<<v[f]<<endl;
m-=v[f];
v[f]=a[i].q;
}
}
}
cout<<m;
}
(感谢大佬)