#include<bits/stdc++.h>
using namespace std;
const int N = 1010;
int b[N],c[N],f[1000010],v[1000010];
void init()
{
memset(v, 0x3f,sizeof v);
v[1] = 0;
for(int i = 1; i <= 1000; i ++)
{
for(int j = 1; j <= i ;j ++)
{
if(i+i/j<=1000)v[i+i/j] = min(v[i+i/j],v[i]+1);
}
}
}
int main()
{
int T;
cin>>T;
init();
while(T--)
{
int n , k;
cin>>n>>k;
memset(f,0,sizeof f);
for(int i = 1; i <= n; i ++)cin>>b[i];
for(int i = 1; i <= n; i++)cin>>c[i];
for(int i = 1; i <= n; i ++)
for(int j = k; j>=v[b[i]];j--)
{
f[j] = max(f[j], f[j-v[b[i]]] + c[i]);
}
cout<<f[k]<<endl;
}
}
1370C - Number Game | 1206B - Make Product Equal One |
131A - cAPS lOCK | 1635A - Min Or Sum |
474A - Keyboard | 1343A - Candies |
1343C - Alternating Subsequence | 1325A - EhAb AnD gCd |
746A - Compote | 318A - Even Odds |
550B - Preparing Olympiad | 939B - Hamster Farm |
732A - Buy a Shovel | 1220C - Substring Game in the Lesson |
452A - Eevee | 1647B - Madoka and the Elegant Gift |
1408A - Circle Coloring | 766B - Mahmoud and a Triangle |
1618C - Paint the Array | 469A - I Wanna Be the Guy |
1294A - Collecting Coins | 1227A - Math Problem |
349A - Cinema Line | 47A - Triangular numbers |
1516B - AGAGA XOOORRR | 1515A - Phoenix and Gold |
1515B - Phoenix and Puzzle | 155A - I_love_username |
49A - Sleuth | 1541A - Pretty Permutations |