Cod sursa(job #708355)

Utilizator DraStiKDragos Oprica DraStiK Data 6 martie 2012 19:10:25
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.15 kb
#include <algorithm>
#include <cstdio>
#include <vector>
using namespace std;

#define pb push_back
#define MOD 666013

vector <int> h[MOD];
int n;

inline void insert (int key,int val)
{
    vector <int> :: iterator it;

    for (it=h[key].begin (); it!=h[key].end (); ++it)
        if (*it==val)
            return ;
    h[key].pb (val);
}

inline void remove (int key,int val)
{
    vector <int> :: iterator it;

    for (it=h[key].begin (); it!=h[key].end (); ++it)
        if (*it==val)
        {
            h[key].erase (it);
            return ;
        }
}

inline int find (int key,int val)
{
    vector <int> :: iterator it;

    for (it=h[key].begin (); it!=h[key].end (); ++it)
        if (*it==val)
            return 1;
    return 0;
}

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

    scanf ("%d",&n);
    for (i=1; i<=n; ++i)
    {
        scanf ("%d%d",&tip,&x);
        if (tip==1)
            insert (x%MOD,x);
        else if (tip==2)
            remove (x%MOD,x);
        else
            printf ("%d\n",find (x%MOD,x));
    }

}