AC代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string>
#include <algorithm>
using namespace std;
typedef struct{
int deadline;
int score;
}HW;
int cmp( const void *a, const void *b ){
return ((HW*)b)->score - ((HW*)a)->score;
}
int main(){
int T, N;
HW hw[1001];
bool mark[1001];
cin >> T;
while( T-- ){
memset( mark, false, sizeof( mark ) );
cin >> N;
for( int i = 0; i < N; i++ ){
cin >> hw[i].deadline;
}
for( int i = 0; i < N; i++ ){
cin >> hw[i].score;
}
qsort( hw, N, sizeof( HW ), cmp );
int ans = 0;
for( int i = 0; i < N; i++ ){
int j;
for( j = hw[i].deadline; j >= 1; j-- ){
if( !mark[j] ){
mark[j] = true;
break;
}
}
if( j < 1 ){
ans += hw[i].score;
}
}
cout << ans << endl;
}
return 0;
}