#include<bits/stdc++.h>
using namespace std;
//using u128 = __uint128_t;
#define int long long
#define endl "\n"
#define yes cout<<"YES\n"
#define no cout<<"NO\n"
#define nl cout<<"\n"
#define cnl clog<<"\n"
#define lin(n) int n;cin>>n;
#define vin vector<int>
#define pr pair<int, int>
#define pp pop_back()
#define pb push_back
#define em_pb emplace_back
#define all(x) x.begin(),x.end()
#define ppfr(v) v.erase(v.begin());
#define sum_all(v) accumulate(all(v), 0ll)
#define forn(i,n) for(int i = 0; i < n; i++)
#define Forn(i,n) for(int i = 1; i <= n; i++)
#define rforn(i,n) for(int i = n - 1; i >= 0; i--)
#define print(arr) for(auto x: arr)cout<<x<<" ";nl;
#define mprint(mp) for(auto a : mp)cout<<a.first<<" "<<a.second<<endl;
#define _log2(n) 31 - __builtin_clz(n)
#define pop_count(n) __builtin_popcount(n)
mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());
#define rng(x,y) uniform_int_distribution<int>(x,y)(rng)
#ifdef DEBUG
#include<algo/debug.h>
#else
# define clog if (0) cerr
# define NB 2500
# define db(...) ""
#endif
// const int M = 998244353;
const long long INF = 1e18;
const int M = 1e9 + 7;
const int N = 2e5 + 100;
struct BIT{
int n;
vector<int> t;
BIT(int n = 2e5) : n(n){
t.resize(n + 1);
}
int query(int i){
if(i < 0)return 0;
int ans = 0;
for(; i; i -= i & -i)ans += t[i];
return ans;
}
int query(int l, int r){
return query(r) - query(l - 1);
}
void update(int i, int val){
for(; i <= n; i += i & -i)t[i] += val;
}
};
void _(){
int n; cin >> n;
vin a(n + 1), b(n + 1);
for(int i = 1; i <= n; i++)cin >> a[i];
for(int i = 1; i <= n; i++)cin >> b[i];
BIT bit(n);
vin dp(n + 1);
for(int i = n; i >= 1; i--){
dp[i] = b[i] + bit.query(a[i] + 1, n);
bit.update(a[i], dp[i]);
}
int mx = dp[1];
for(int i = n; i >= 1; i--){
if(dp[i] == mx){
cout << n - i + 1 << endl;
return;
}
}
// cout << dp[1] << endl;
}
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int test = 1;
cin>>test;
for(int i = 1; i <= test; i++){
// cout << "Case " << i <<": ";
_();
}
return 0;
}