Cod sursa(job #1308351)

Utilizator OctaDuiu Octavian Octa Data 3 ianuarie 2015 23:11:05
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include<cstdio>
#include<vector>
#define mod 666013
using namespace std;
vector < int > v[mod];

inline vector < int >::iterator find(int x)
{
    vector < int >::iterator it;
    int list=x%mod;

    for(it=v[list].begin ();it!=v[list].end (); ++it)
        if(*it==x) return it;

  return v[list].end();
}

inline void insert(int x)
{
    int list=x%mod;

    if(find(x)==v[list].end()) v[list].push_back(x);
}

inline void erase(int x)
{
    int list=x%mod;

    vector < int >::iterator it=find(x);

    if(it!=v[list].end())
        v[list].erase(it);

}
int main()
{
    freopen("hashuri.in","r",stdin); freopen("hashuri.out","w",stdout);

    int n;
    scanf("%d",&n);

    while(n)
    {
        int op,x;
        scanf("%d %d",&op,&x);

        if(op==1) insert(x);
         else
        if(op==2) erase(x);
         else
          if(find(x)==v[x%mod].end()) printf("0\n");
           else                       printf("1\n");

        --n;
    }
    return 0;
}