Cod sursa(job #1414275)

Utilizator azkabancont-vechi azkaban Data 2 aprilie 2015 14:41:29
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <bits/stdc++.h>
using namespace std;
#define key 666013
int op,i,t,a;

class Hash_Table
    {
     public : 
        vector <int> Hash[key+13];
 
        bool find(int a)
           {
            vector <int>::iterator it;
            for (it=Hash[a%key].begin();it!=Hash[a%key].end();++it)
                  if (*it==a) return 1;
            return 0;
          }
 
        void push(int a)
             {
             if (find(a)) return;
             Hash[a%key].push_back(a);
             }
 
        void erase(int a)
            {
            for (int i=0;i<Hash[a%key].size();++i)
              if (Hash[a%key][i]==a)
                     {
                     swap(Hash[a%key][i],Hash[a%key][Hash[a%key].size()-1]);
                     Hash[a%key].pop_back();
                     return;
                     }
            }
    };
    
Hash_Table Hash;
 
int main(void)
{
 ifstream cin("hashuri.in");
 ofstream cout("hashuri.out");
 cin>>t;
  while(t--)
    {
     cin>>op>>a;
     if (op==1) Hash.push(a);
     if (op==2) Hash.erase(a);
     if (op==3) cout<<Hash.find(a)<<"\n";  
    }
 return 0;
}