Cod sursa(job #1583808)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 29 ianuarie 2016 13:21:40
Problema Hashuri Scor 0
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(find(x));
}

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)<<'\n';
    }
    return 0;
}