题目链接 #include<iostream> #include<cstring> #include<algorithm> #include<cmath> #include<vector> #include<map> #include<queue> using namespace std; #define int long long const int N = 5010; int sa[N],sb[N],f[N]; void solve() { int n;cin>>n; for(int i=1;i<=n;i++)cin>>sa[i],sa[i]=sa[i-1]+sa[i]; for(int i=1;i<=n;i++)cin>>sb[i],sb[i]=sb[i-1]+sb[i]; memset(f,-0x3f,sizeof f); f[0]=0; for(int i=1;i<=n;i++) for(int j=i-1;j>=0;j--) if(sa[i]-sa[j]>=sb[i]-sb[j])f[i]=max(f[i],f[j]+1); f[n]=f[n]<0?-1:f[n]; cout<<f[n]<<'\n'; } signed main() { int T;cin>>T; while(T--)solve(); }