#include using namespace std; const int MaxN = (int)1e6 + 10; const int INF = 1e9; pair < int, int > all[MaxN]; int en, ma[MaxN], mi[MaxN]; int fenw[MaxN], n; void upd(int r, int val) { while (r <= 2 * n) { fenw[r] += val; r |= r + 1; } } int get(int r) { int ans = 0; while (r >= 0) { ans += fenw[r]; r &= r + 1, --r; } return ans; } long long calc(const vector < int > &v) { for (int i = 0; i < (int)v.size(); ++i) { ma[v[i]] = i + 1; mi[v[(int)v.size() - 1 - i]] = (int)v.size() - i; } long long ans = 0; for (int i = 1; i <= n; ++i) { ans += min(ma[i] - mi[i] + 1, 2 * n - ma[i] + 1 + mi[i]) - 2; assert (mi[i] >= 1 && ma[i] <= 2 * n && mi[i] != ma[i]); all[i] = make_pair(mi[i], ma[i]); } sort(all + 1, all + n + 1); for (int i = 1; i <= n; ++i) { ans -= get(all[i].second) - get(all[i].first); upd(all[i].second, +1); } for (int i = 1; i <= n; ++i) { ma[i] = mi[i] = 0; } for (int i = 0; i <= 2 * n; ++i) { fenw[i] = 0; } return ans; } void solve() { scanf("%d", &n); assert (1 <= n && n <= 500000); en += n; assert (en <= 1000000); vector < int > v; for (int i = 1; i <= 2 * n; ++i) { int x; scanf("%d", &x); assert (1 <= x && x <= n); v.push_back(x); } printf("%lld\n", calc(v)); } int main() { // freopen("input.txt", "r", stdin); int t; scanf("%d", &t); assert (1 <= t && t <= 1000); while (t --> 0) { solve(); } return 0; }