题目描述 Description
给出n个正整数,然后有m个询问,每个询问一个整数,询问该整数是否在n个正整数中出现过。
输入描述 Input Description
第一行两个整数 n 和m。
第二行n个正整数(1<=n<= 100000)
第三行m个整数(1<=m<=100000)
输出描述 Output Description
一共m行,若出现则输出YES,否则输出NO
样例输入 Sample Input
4 2
2 1 3 4
1 9
样例输出 Sample Output
YES
NO
#include <iostream>
#include<string.h>
#include <cstdio>
#include<set>
#include <algorithm>
#include <cstring>
#define MOD 9875321
using namespace std;
/*int main()
{
set<int> s;
int i,j,k,n,m;
cin>>n>>m;
for (i=0; i<n; i++)
{
cin>>k;
s.insert(k);
}
for (i=0; i<m; i++)
{
cin>>k;
if (s.count(k))
{
cout<<"YES"<<endl;
}else{
cout<<"NO"<<endl;
}
}
return 0;
}*/
int a[100000]={0};
int gethash(int n)
{
int x=0;
return n%MOD;
}
int main()
{
int i,j,k,n,m;
cin>>n>>m;
for (i=0; i<n; i++)
{
cin>>k;
a[gethash(k)] = 1;
}
for (i=0; i<m; i++)
{
cin>>k;
if (a[gethash(k)])
{
cout<<"YES"<<endl;
}
else{
cout<<"NO"<<endl;
}
}
return 0;
}