#include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; const int maxn = 2e5+5; const ll mod = 1e9+7; long long dp[maxn][3]; //const long long mod = 1000000009; long long inv[maxn]; long long ba[maxn]; long long rba[maxn]; #define M 200001 void pre() { inv[0] = inv[1] = 1; ba[0] = ba[1] = 1; rba[0] = rba[1] = 1; for (int i = 2; i < M; i++) { inv[i] = ((mod - mod / i) * inv[mod % i]) % mod; ba[i] = (ba[i - 1] * i) % mod; rba[i] = (rba[i - 1] * inv[i]) % mod; } } long long C(int n, int k) { return (ba[n] * rba[k] % mod ) * rba[n - k] % mod; } int main() { int T; pre(); scanf("%d", &T); for (int tt = 0; tt < T; ++tt) { int n; scanf("%d",&n); vector vec; int last = -1 , cnt = 1; for (int i=0;i<2*n;i++) { int a; scanf("%d",&a); if (a == last) { cnt++; } else { last = a; vec.push_back(cnt); cnt = 1; } } vec.push_back(cnt); if(n>1e4) { memset(dp,0, sizeof(dp)); } else { for (int i=0;i