Cod sursa(job #1583824)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 29 ianuarie 2016 13:35:55
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include <iostream>
#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);
    cin>>n;
    int op,x;
    for(int i=1;i<=n;i++)
    {
        cin>>op>>x;
        if(op==1)
        {
            add(x);
            continue;
        }
        if(op==2)
        {
            erase(x);
            continue;
        }
        if(op==3)
        cout<<((find(x)==_hash[x%MOD].end()) ? 0:1)<<endl;
    }
    return 0;
}