#1158. 两数之和

两数之和

题目描述

给定一个包含 nn 个整数的数组,以及 qq 次询问。

每次询问给出一个整数 SS,判断是否存在数组中的两个数(可以是同一个数,即自己和自己相加),使得它们的和等于 SS

输入格式

第一行包含两个整数 nnqq,分别表示数组的大小和询问的次数。

第二行包含 nn 个整数,表示数组中的元素。

接下来 qq 行,每行包含一个整数 SS,表示每次询问的目标和。

输出格式

对于每个询问,如果存在两个数(可以是同一个数)的和等于 SS,则输出 yes,否则输出 no

样例

5 3
1 2 3 4 5
5
11
2
yes
no
yes

样例1解释

第一次询问 S=5S=5,数组中存在两个数 1144,它们的和为 55,输出 yes

第二次询问 S=11S=11,数组中不存在两个数的和为 1111,输出 no

第三次询问 S=2S=2,数组中存在两个数 1111(同一个数),它们的和为 22,输出 yes

数据范围

对于 30%30\% 的数据,1n10001 \le n \le 10001q51 \le q \le 500 ≤ 数组中的元素 1000≤ 10000S20000 ≤ S ≤ 2000。。

对于 100%100\% 的数据,1n1051 \le n \le 10^51q1051 \le q \le 10^500 ≤ 数组中的元素 3000≤ 30000S60000 ≤ S ≤ 6000