http://ac.jobdu.com/problem.php?cid=1040&pid=19
- 题目描述:
-
输入数组长度 n
输入数组 a[1...n]
输入查找个数m
输入查找数字b[1...m]
输出 YES or NO 查找有则YES 否则NO 。
- 输入:
-
输入有多组数据。
每组输入n,然后输入n个整数,再输入m,然后再输入m个整数(1<=m<=n<=100)。
- 输出:
-
如果在n个数组中输出YES否则输出NO。
- 样例输入:
-
5 1 5 2 4 3 3 2 5 6
- 样例输出:
-
YES YES NO
// 题目20:查找.cpp: 主项目文件。 #include "stdafx.h" #include <cstdio> #include <algorithm> using namespace std; const int N=103; int a[N]; int binarySearch(int num, int low, int high) { if(low>high) return -1; int mid=(low+high)>>1; if(a[mid]==num) return mid; else if(num<a[mid]) { high=mid-1; return binarySearch(num,low,high); } else { low=mid+1; return binarySearch(num,low,high); } } int main() { int n,m; while(scanf("%d",&n)!=EOF) { for(int i=0;i<n;i++) scanf("%d",a+i); sort(a,a+n); int m; scanf("%d",&m); while(m--) { int tmp; scanf("%d",&tmp); int index=binarySearch(tmp,0,n-1); if(index==-1) printf("NO\n"); else printf("YES\n"); } } return 0; }