Cod sursa(job #3319022)

Utilizator Andrei_PanaAndrei Pana Andrei_Pana Data 30 octombrie 2025 12:07:23
Problema Dtcsu Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#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;
}