以下是本蒟蒻的代码,求大犇们指教。
#include<bits/stdc++.h>
using namespace std;
int s[5000001];
struct hurt
{
long long a,b;
}a[1001];
long long cmp(const hurt &a,const hurt &b)
{
return b.b>a.a;
}
int main()
{
long long ans,n,i;
cin>>ans>>n;
for(i=1;i<=n;i++) cin>>a[i].a;
for(i=1;i<=n;i++) cin>>a[i].b;
sort(a,a+n,cmp);
for(i=1;i<=n;i++)
{
int ymy=1;
for(long long j=a[i].a;j>0;j--)
if(s[j]==0)
{
ymy=0;
s[j]=1;
break;
}
if(ymy==1)
{
for(long long k=n;k>=1;k--)
if(s[k]==0){s[k]=1;break;}
ans=ans-a[i].b;
}
}
cout<<ans<<endl;
return 0;
}