描述
给定一个单调递增的整数序列,问某个整数是否在序列中。
输入
第一行为一个整数n,表示序列中整数的个数;第二行为n(n不超过10000)个整数;第三行为一个整数m(m不超过50000),表示查询的个数;接下来m行每行一个整数k。
输出
每个查询的输出占一行,如果k在序列中,输出Yes,否则输出No。
输入样例
5
1 3 4 7 11
3
3
6
9
输出样例
Yes
No
No
#include <iostream>
#include <cstdio>
#define MAXSIZE 10006
using namespace std;
int A[MAXSIZE];
void binsearch(int l,int r,int k){
int mid;
while(l<=r){
mid = (l+r)/2;
if(A[mid]==k){
printf("Yes\n");
return;
}
if(A[mid]>k){
r = mid-1;
}
else l = mid+1;
}
printf("No\n");
}
int main()
{
int n,m,i;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&A[i]);
}
scanf("%d",&m);
while(m--){
scanf("%d",&i);
binsearch(0,n-1,i);
}
return 0;
}