Pagini recente » Cod sursa (job #1189909) | Cod sursa (job #621472) | Cod sursa (job #3313523) | Cod sursa (job #3318676) | Cod sursa (job #3319022)
#include <fstream>
#include <ctime>
#include <cstdlib>
#include <set>
#include <algorithm>
using namespace std;
ifstream cin("dtcsu.in");
ofstream cout("dtcsu.out");
struct hashtable{
static const int P2EXP=13;
static const int MAXHASH=8192;
int RANDOM;
set<int> vals[MAXHASH+1];
int hash(int val){
return val&((1<<P2EXP)-1);
}
hashtable(){
srand(time(NULL));
RANDOM=this->hash(rand());
}
void insert(int x){
if(!this->contains(x)){
int code=this->hash(RANDOM*x);
vals[code].insert(x);
}
}
void erase(int x){
if(this->contains(x)){
int code=this->hash(RANDOM*x);
vals[code].erase(x);
}
}
bool contains(int x){
int code=this->hash(RANDOM*x);
return (vals[code].find(x)!=vals[code].end());
}
}hsh;
int main(){
int n=276997,i,q,nrbun=0;
long long x;
for(i=0;i<n;i++){
cin>>x;
hsh.insert(x);
}
cin>>q;
while(q--){
cin>>x;
nrbun+=hsh.contains(x);
}
cout<<nrbun;
return 0;
}