部分和クエリ
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 | No |
Constraints
Time limit: 10 seconds
Memory limit: 512 MB
Output limit: 1 MB