Cod sursa(job #1583821)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 29 ianuarie 2016 13:32:36
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <stdio.h>
#include <fstream>
#include <vector>
#define MOD 666013

using namespace std;

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

vector<int>::iterator find(int x)
{
    int key = x%MOD;
    vector<int>::iterator it;
    for(it = _hash[key].begin();it<_hash[key].end();it++)
        if(*it==x)
        return it;
    return _hash[key].end();
}

void add(int x)
{
    int key = x%MOD;
    if(find(x)==_hash[key].end())
    _hash[key].push_back(x);
}

void erase(int x)
{
    int key = x%MOD;
    vector<int>::iterator it;
    it = find(x);
    if(it!=_hash[key].end())
    _hash[key].erase(it);
}

int main()
{
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    scanf("%d",&n);
    int op,x;
    for(int i=1;i<=n;i++)
    {
        scanf("%d",&op);
         scanf("%d",&x);
        if(op==1)
        {
            add(x);
            continue;
        }
        if(op==2)
        {
            erase(x);
            continue;
        }
        if(op==3)
        printf("%d\n",find(x)!=_hash[x%MOD].end());
    }
    return 0;
}