#include #define pb push_back #define mp make_pair #define fi first #define se second using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; template bool chkmax(T &x,T y){return x bool chkmin(T &x,T y){return x>y?x=y,true:false;} int readint(){ int x=0,f=1; char ch=getchar(); while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();} while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();} return x*f; } int n; ll a[2005],b[2005],d[2005][2005]; int main(){ int T=readint(); while(T--){ n=readint(); for(int i=1;i<=n;i++) a[i]=readint(); for(int i=1;i<=n;i++) b[i]=readint()+b[i-1]; for(int i=0;i<=n;i++) for(int j=0;j<=n;j++) d[i][j]=1ll<<60; d[0][0]=0; for(int i=1;i<=n;i++){ for(int j=0;j<=i;j++){ d[i][j]=d[i-1][j]; if(j&&d[i-1][j-1]+a[i]<=b[i]) chkmin(d[i][j],d[i-1][j-1]+a[i]); } } for(int i=n;i>=0;i--){ if(d[n][i]<(1ll<<60)){ printf("%d\n",i); break; } } } return 0; }