#include #define N 2005 using namespace std; bool cur1; int n; int a[N],b[N]; long long dp[N][N]; inline void Rd(int &res){ char c;res=0; while(c=getchar(),c<48); do res=(res<<3)+(res<<1)+(c^48); while(c=getchar(),c>47); return; } bool cur2; int main(){ int T; Rd(T); while(T--){ Rd(n); for(int i=1;i<=n;i++)Rd(a[i]); for(int i=1;i<=n;i++)Rd(b[i]); for(int i=0;i<=n;i++)for(int j=0;j<=n;j++)dp[i][j]=-1; dp[0][0]=0; for(int i=1;i<=n;i++){ for(int j=0;j=0){ long long h=dp[i-1][j]; if(a[i]-h<=b[i])dp[i][j+1]=max(dp[i][j+1],h+b[i]-a[i]); dp[i][j]=max(dp[i][j],h+b[i]); } } int ans=0; for(int i=n;i>=1;i--)if(dp[n][i]>=0){ printf("%d\n",i); break; } } return 0; }