#include<bits/stdc++.h>
using namespace std;
#define fast ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define dbg(a,b,c,d) cerr<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
#define kill(a) {cout<<a<<endl;continue;}
#define KILL(a) {cout<<a<<endl;return 0;}
#define debug cerr<<"Error Found"<<endl;
#define mem(a,b) memset(a,b,sizeof(a))
#define lcm(a, b) (a/__gcd(a,b))*b
#define w(t) cin>>t;while(t--)
#define pi 2 * acos(0.0)
#define endl "\n"
int t, cs = 0;
const int mxn = 1e6 + 3, mod = 1e9 + 7;
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
typedef tree<int,null_type,less_equal<int>,rb_tree_tag,tree_order_statistics_node_update>ordered_set;
int32_t main()
{
w(t)
{
int n;
cin >> n;
ordered_set in1, in2, de1, de2;
int ar[n];
for(int i = 0; i < n; i++)cin >> ar[i], de1.insert(-ar[i]), de2.insert(ar[i]);
int64_t ans[n], tmp;
for(int i = 0; i < n; i++)
{
int a = in1.order_of_key(ar[i]);
int b = de1.order_of_key(-ar[i]);
tmp = 1LL * a * b;
a = in2.order_of_key(-ar[i]);
b = de2.order_of_key(ar[i]);
tmp += 1LL * a * b;
ans[i] = tmp;
in1.insert(ar[i]), in2.insert(-ar[i]);
de1.erase(--de1.lower_bound(-ar[i])), de2.erase(--de2.lower_bound(ar[i]));
}
int q;
cin >> q;
while(q--)
{
int idx;
cin >> idx;
cout << ans[--idx] << endl;
}
}
}