code:
#include <bits/stdc++.h>
using namespace std;
int n, m, a[10000], f, mid, w[4];
void dfs(int d, int k) {
if (f||k>4)
return;
if (d == m) {
cout << "yes\n";
f = 1;
return;
}
for (int i = 0; i < 4; i++) {
if (w[i] + a[d] <= mid) {
w[i] += a[d];
dfs(d + 1, k);
w[i] -= a[d];
} else {
w[k + 1] += a[d];
dfs(d + 1, k + 1);
w[k + 1] -= a[d];
}
}
}
int main() {
cin >> n;
for (int i = 0; i < n; i++) {
int f1=0;
f=0;
int s = 0;
cin >> m;
for (int i = 0; i < m; i++) {
cin >> a[i];
s += a[i];
}
if (s % 4 != 0||m<4) {
cout << "no\n";
continue;
}
mid = s / 4;
for (int i = 0; i < m; i++) {
if(a[i]>mid){
cout<<"no\n";
f1=1;
break;
}
}
if(f1==1) continue;
sort(a, a + m, greater<int>());
dfs(0, 1);
for (int i = 0; i < m; i++) {
a[i] = 0;
}
if(f==0) cout<<"no\n";
}
return 0;
}