1 #include <iostream>
2 #define MAXN 30
3 using namespace std;
4
5 int _m[MAXN];
6
7 bool mark[MAXN];
8
9 bool boo;
10
11 int st;
12
13 int num;
14 void DFS(int time,int sum,int k);
15 int main()
16 {
17 //freopen("acm.acm","r",stdin);
18 int test;
19 int ave;
20 int i;
21 int sum;
22 cin>>test;
23 while(test --)
24 {
25 cin>>num;
26 sum = 0;
27 boo = false;
28 memset(mark,false,sizeof(mark));
29 for(i = 0; i < num; ++ i)
30 {
31 cin>>_m[i];
32 sum += _m[i];
33 }
34
35 if(sum % 4 != 0)
36 {
37 cout<<"no"<<endl;
38 continue;
39 }
40 else
41 {
42 st = sum/4;
43 }
44
45 DFS(0,0,0);
46
47 if(boo)
48 {
49 cout<<"yes"<<endl;
50 }
51 else
52 {
53 cout<<"no"<<endl;
54 }
55
56 }
57
58 }
59
60 void DFS(int time,int sum,int k)
61 {
62 if(time == num)
63 {
64 return;
65 }
66 if(sum > st)
67 {
68 return;
69 }
70 if(sum == st)
71 {
72 if(k + 1 == 3)
73 {
74 boo = true;
75 return;
76 }
77 else
78 {
79 DFS(0,0,k+1);
80 }
81
82 return;
83 }
84 if(!mark[time])
85 {
86 mark[time] = true;
87 DFS(time+1,sum + _m[time],k);
88 if(boo)
89 {
90 return;
91 }
92 mark[time] = false;
93 }
94 DFS(time + 1,sum,k);
95 }