#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 10;
#define pb push_back
#define me memset
int t;
int n;
int a[N];
vector<int> v;
int dp[N];
int main() {
scanf("%d", &t);
while (t--) {
scanf("%d", &n);
me(dp, 0, sizeof(dp));
v.clear();
for (int i = 1; i <= 2 * n; ++i) {
scanf("%d", &a[i]);
}
int mx = a[1];
int pos = 1;
for (int i = 2; i <= 2 * n; ++i) {
if (a[i] > mx) {
v.pb(i - pos);
mx = a[i];
pos = i;
}
}
v.pb(2 * n + 1 - pos);
dp[0] = 1;
for (int i = 0; i < (int)v.size(); ++i) {
for (int j = n; j >= v[i]; --j) {
dp[j] += dp[j - v[i]];
}
}
if (dp[n]) puts("YES");
else puts("NO");
}
return 0;
}
1676D - X-Sum | 1679A - AvtoBus |
1549A - Gregor and Cryptography | 918C - The Monster |
4B - Before an Exam | 545B - Equidistant String |
1244C - The Football Season | 1696B - NIT Destroys the Universe |
1674A - Number Transformation | 1244E - Minimizing Difference |
1688A - Cirno's Perfect Bitmasks Classroom | 219A - k-String |
952A - Quirky Quantifiers | 451B - Sort the Array |
1505H - L BREAK into program | 171E - MYSTERIOUS LANGUAGE |
630D - Hexagons | 1690D - Black and White Stripe |
1688D - The Enchanted Forest | 1674C - Infinite Replacement |
712A - Memory and Crow | 1676C - Most Similar Words |
1681A - Game with Cards | 151C - Win or Freeze |
1585A - Life of a Flower | 1662A - Organizing SWERC |
466C - Number of Ways | 1146A - Love "A" |
1618D - Array and Operations | 1255A - Changing Volume |