#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
struct node
{
int day;
int score;
bool operator<(const node& x)const{
return score>x.score;
}
};
int main()
{
int t,n;
int i,j,ans;
cin>>t;
node job[5005];
int flag[5005];
while(t--)
{
cin>>n;
ans=0;
memset(flag,0,sizeof(flag));
for(i=0;i<n;i++)
{
cin>>job[i].day;
}
for(i=0;i<n;i++)
cin>>job[i].score;
sort(job,job+n);
for(i=0;i<n;i++)
{
for(j=job[i].day;j>0;j--)
{
if(!flag[j]){flag[j]=1;break;}
}
if(!j) ans+=job[i].score;
}
cout<<ans<<endl;
}
return 0;
}
http://acm.hdu.edu.cn/showproblem.php?pid=1789
浙公网安备 33010602011771号