查找元素
Problem Description
在给出的数列中(数列中没有重复元素),判断某个元素存在与否。
Input
输入的第1行为示例个数T,对于每个示例第1行为n(n<1000000),表示输入数列中元素的个数,下面1行为n个元素,第3行为查询元素的个数m(m<15000),下面m行为每个需要查询的元素。
Output
输出每个需要查询元素的查询结果,如果查找到输出"Yes",否则输出"No"。
Sample Input
1 5 1 4 5 2 3 2 3 7
Sample Output
Yes No #include<iostream>
#include<algorithm>
#include<stdio.h>
using namespace std;
int p[1000010];
int head,rear;
int n;
int lmx(int x)
{
int mid;
head=0;rear=n-1;
while(head<=rear)
{
mid=(head+rear)/2;
if(p[mid]==x) return 1;
else if(p[mid]<x) head=mid+1;
else rear=mid-1;
}
return 0;
}
int main()
{
int t,i;
int m,x;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d",&p[i]);
}
sort(p,p+n);
scanf("%d",&x);
for(i=0;i<x;i++)
{
scanf("%d",&m);
if(lmx(m)==1)puts("Yes");
else puts("No");
}
}
//system("pause");
return 0;
}
为了明天所以选择坚定的执着今天。