/*******************************\
Name: REAJUL HAQUE REAYZ |
School: COMILLA UNIVERSITY |
CSE (5TH BATCH) |
********************************/
#include<bits/stdc++.h>
#define endl "\n"
#define inf 1<<30
#define pi acos(-1.0)
#define pb push_back
#define mp make_pair
#define ss stringstream
#define all(v) v.begin(), v.end()
#define mem(x,y) memset(x , y , sizeof(x))
#define bit_cnt(mask) __builtin_popcount(mask)
using namespace std;
typedef long long ll;
typedef pair < int , int > pii;
typedef pair < ll , ll > pll;
const ll MOD = 1000000007; /// 1e9+7
const int MAX = 555;
ll bigmod(ll n, ll r)
{
if(r==0) return 1;
if(r==1) return n;
if(r%2==0)
{
ll ret = bigmod(n, r/2);
return ((ret%MOD) * (ret%MOD)) % MOD;
}
else return ((n%MOD) * (bigmod(n,r-1)%MOD)) % MOD;
}
ll modinverse(ll a){return bigmod(a,MOD-2)%MOD;}
ll lcm(ll a, ll b) {a=abs(a); b=abs(b); return (a/__gcd(a,b))*b;}
ll gcd(ll a, ll b) {a=abs(a); b=abs(b); if(!b) return a; return __gcd(b,a%b);}
int in() {int x; scanf("%d",&x); return x;}
ll lin() {ll x; scanf("%lld",&x); return x;}
int a[MAX], b[MAX];
int dp[MAX][MAX];
int main(){
int t=in();
while(t--){
int n=in();
int mx = 0;
for(int i=1; i<=n; i++){
a[i]=in();
a[i]*=2;
mx = max(mx, a[i]);
}
for(int i=1; i<=n; i++) b[i]=in();
dp[0][0]=0;
for(int i=1; i<=mx; i++){
dp[0][i]=1e9;
}
for(int i=1; i<=n; i++){
for(int j=0; j<=mx; j++){
dp[i][j]=dp[i-1][j];
if(j>=b[i]) {
dp[i][j] = min(dp[i][j], 1+dp[i][j-b[i]]);
}
}
}
int ans=0;
for(int i=1; i<=n; i++){
ans += dp[n][a[i]];
}
printf("%d\n",ans);
}
return 0;
}
LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcCiAgIE5hbWU6ICAgIFJFQUpVTCBIQVFVRSBSRUFZWiAgfAogICBTY2hvb2w6ICBDT01JTExBIFVOSVZFUlNJVFkgIHwKICAgICAgICAgICAgQ1NFICg1VEggQkFUQ0gpICAgICB8CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwojaW5jbHVkZTxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGVuZGwgIlxuIgojZGVmaW5lIGluZiAxPDwzMAojZGVmaW5lIHBpIGFjb3MoLTEuMCkKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBzcyBzdHJpbmdzdHJlYW0KI2RlZmluZSBhbGwodikgdi5iZWdpbigpLCB2LmVuZCgpCiNkZWZpbmUgbWVtKHgseSkgbWVtc2V0KHggLCB5ICwgc2l6ZW9mKHgpKQojZGVmaW5lIGJpdF9jbnQobWFzaykgX19idWlsdGluX3BvcGNvdW50KG1hc2spCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwp0eXBlZGVmIHBhaXIgPCBpbnQgLCBpbnQgPiBwaWk7CnR5cGVkZWYgcGFpciA8IGxsICwgbGwgPiBwbGw7CmNvbnN0IGxsIE1PRCA9IDEwMDAwMDAwMDc7IC8vLyAxZTkrNwpjb25zdCBpbnQgTUFYID0gNTU1OwpsbCBiaWdtb2QobGwgbiwgbGwgcikKewogICAgaWYocj09MCkgcmV0dXJuIDE7CiAgICBpZihyPT0xKSByZXR1cm4gbjsKICAgIGlmKHIlMj09MCkKICAgIHsKICAgICAgICBsbCByZXQgPSBiaWdtb2Qobiwgci8yKTsKICAgICAgICByZXR1cm4gKChyZXQlTU9EKSAqIChyZXQlTU9EKSkgJSBNT0Q7CiAgICB9CiAgICBlbHNlIHJldHVybiAoKG4lTU9EKSAqIChiaWdtb2QobixyLTEpJU1PRCkpICUgTU9EOwp9CmxsIG1vZGludmVyc2UobGwgYSl7cmV0dXJuIGJpZ21vZChhLE1PRC0yKSVNT0Q7fQpsbCBsY20obGwgYSwgbGwgYikge2E9YWJzKGEpOyBiPWFicyhiKTsgcmV0dXJuIChhL19fZ2NkKGEsYikpKmI7fQpsbCBnY2QobGwgYSwgbGwgYikge2E9YWJzKGEpOyBiPWFicyhiKTsgaWYoIWIpIHJldHVybiBhOyByZXR1cm4gX19nY2QoYixhJWIpO30KaW50IGluKCkge2ludCB4OyBzY2FuZigiJWQiLCZ4KTsgcmV0dXJuIHg7fQpsbCBsaW4oKSB7bGwgeDsgc2NhbmYoIiVsbGQiLCZ4KTsgcmV0dXJuIHg7fQoKaW50IGFbTUFYXSwgYltNQVhdOwppbnQgZHBbTUFYXVtNQVhdOwppbnQgbWFpbigpewogICAgaW50IHQ9aW4oKTsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgaW50IG49aW4oKTsKICAgICAgICBpbnQgbXggPSAwOwogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspewogICAgICAgICAgICBhW2ldPWluKCk7CiAgICAgICAgICAgIGFbaV0qPTI7CiAgICAgICAgICAgIG14ID0gbWF4KG14LCBhW2ldKTsKICAgICAgICB9CiAgICAgICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykgYltpXT1pbigpOwogICAgICAgIGRwWzBdWzBdPTA7CiAgICAgICAgZm9yKGludCBpPTE7IGk8PW14OyBpKyspewogICAgICAgICAgICBkcFswXVtpXT0xZTk7CiAgICAgICAgfQogICAgICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpKyspewogICAgICAgICAgICBmb3IoaW50IGo9MDsgajw9bXg7IGorKyl7CiAgICAgICAgICAgICAgICBkcFtpXVtqXT1kcFtpLTFdW2pdOwogICAgICAgICAgICAgICAgaWYoaj49YltpXSkgewogICAgICAgICAgICAgICAgICAgIGRwW2ldW2pdID0gbWluKGRwW2ldW2pdLCAxK2RwW2ldW2otYltpXV0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGludCBhbnM9MDsKICAgICAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICAgICAgYW5zICs9IGRwW25dW2FbaV1dOwogICAgICAgIH0KICAgICAgICBwcmludGYoIiVkXG4iLGFucyk7CiAgICB9CglyZXR1cm4gMDsKfQo=