#include <cstdio>
#include <cstring>
const int maxn = 100 + 10;
int T, kase, n, m, k, inp[maxn], vis[maxn * maxn * 3];
int main(int argc, char const *argv[])
{
scanf("%d", &T);
while (T--)
{
scanf("%d", &n); kase++;
for (int i = 0; i < n; i++)
scanf("%d", inp + i);
for (int i = 0; i < (1 << n); i++)
{
int cur = 0;
for (int j = 0; j < n; j++)
if (i & (1 << j)) cur += inp[j];
vis[cur] = kase;
for (int j = 0; j < n; j++)
if (cur - inp[j] >= 0)
vis[cur - inp[j]] = kase;
}
scanf("%d", &m);
while (m--)
{
scanf("%d", &k);
printf("%s\n", (k < 0 || k > 3E4 || vis[k] != kase) ? "NO" : "YES");
}
}
return 0;
}
有一个没有游标的天平,和n个秤砣,m个询问, 每次一个k,问可否秤出k这个重量。 秤砣可以放两边。