#include <bits/stdc++.h>
using namespace std;
vector<int> closest_max_element(vector<int> &a) {
int n = a.size();
vector<int> r(n);
stack<int> st;
st.push(n);
for (int i = n - 1; i >= 0; i--) {
while (st.top() != n && a[st.top()] <= a[i]) st.pop();
r[i] = st.top();
st.push(i);
}
return r;
}
void solve() {
int n;
cin >> n;
vector<int> a(n);
for (auto& ai : a) {
cin >> ai;
}
vector<int> b(n);
for (auto& bi : b) {
cin >> bi;
}
b.push_back(0);
auto r = closest_max_element(a);
vector<int64_t> suff(n + 1);
int64_t mx = 0;
for (int i = n - 1; i >= 0; i--) {
suff[i] = suff[r[i]] + b[i];
mx = max(mx, suff[i]);
}
int i = n - 1;
while (i >= 0 && suff[i] != mx) i--;
cout << n - i << '\n';
}
int main() {
ios_base::sync_with_stdio(0), cin.tie(0);
int t = 1;
cin >> t;
for (int i = 1; i <= t; i++) {
solve();
}
return 0;
}