部分和クエリ
n 個の整数が与えられ、さらに q 個のクエリが与えられます。各クエリでは、整数 が指定されます。クエリごとに、与えられた整数の部分集合を選んで、その合計が となる組み合わせが存在するかどうかを判定してください。
入力
最初の行には、単一の整数
n
(1 ≤ n ≤ 500) が与えられます。2 行目には、空白区切りで並んだ
n
個の整数 (1 ≤ ≤ 100 000) が与えられます。これは集合の要素です。3 行目には、クエリの数
q
(1 ≤ q ≤ 100 000) が与えられ、その後に続く q
行には、各クエリの目標合計となる整数 (1 ≤ ≤ 100 000) が 1 つずつ与えられます。 出力
q
行を出力し、各クエリごとに、合計が指定の値と一致する部分集合が存在する場合は Yes
、存在しない場合は No
を書き出してください。 Examples
入力 | 出力 |
4
1 2 5 7
5
4
3
10
14
11 | No
Yes
Yes
Yes
No |
Constraints
Time limit: 10 seconds
Memory limit: 512 MB
Output limit: 1 MB