Cod sursa(job #1950651)

Utilizator anamaria41Raicu Ana anamaria41 Data 3 aprilie 2017 10:45:11
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.98 kb
#include <cstdio>
#include <vector>
#define mod 666013

using namespace std;


vector <int> h[mod];
vector <int> :: iterator it;
int n, x, op, i, ind;

vector <int> :: iterator h_find(int x)
{
    ind = x%mod;

    for( it= h[ind].begin(); it != h[ind].end(); it++ )
        if (*it ==x)
            return it ;
    return it;
}

void h_add ( int x)
{
    if (it == h[ind].end())
        h[ind].push_back(x);
}

void h_erase ( int x )
{
    if(it != h[ind].end() )
        h[ind].erase(it);
}

void h_write (int x)
{
    if ( it != h[ind].end ())
        printf ("1\n");
    else printf ("0\n");
}

int main()
{

    freopen ("hashuri.in", "r", stdin);
    freopen ("hashuri.out", "w", stdout);

    scanf ("%d", &n);

    for(i=1; i<=n; i++ )
    {
        scanf ("%d%d", &op, &x);

        ind= x% mod;
        it = h_find(x);

        if(op==1) h_add(x);
        else if(op==2) h_erase(x);
        else h_write(x);

    }

    return 0;
}