还没学Hash,用二分写的
#include<stdio.h>
#include<iostream>
#include<stdlib.h>
#include<string.h>
#include<memory.h>
#include<algorithm>
using namespace std;
const int MAX_N = 100001;
int N,M;
int f[MAX_N];
int init()
{
int i;
scanf("%d %d",&N,&M);
for (i=1;i<=N;i++)
scanf("%d",&f[i]);
}
int work()
{
sort(f+1,f+N+1);
}
int put()
{
int i,j,k,mid;
int v;
for (i=1;i<=M;i++)
{
scanf("%d",&v);
j=1,k=N;
while (j<=k)
{
mid=(j+k)/2;
if (f[mid]==v)
break;
if (f[mid]<v)
j=mid+1;
else
k=mid-1;
}
if (j<=k) printf("YES\n");
else printf("NO\n");
}
}
int main()
{
init();
work();
put();
return 0;
}