Cod sursa(job #1583827)

Utilizator SlevySlevoaca Stefan-Gabriel Slevy Data 29 ianuarie 2016 13:38:17
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <fstream>
#include <vector>
#define MOD 666013

using namespace std;

int n;
vector<int> _hash[MOD];
ifstream in("hashuri.in");
ofstream out("hashuri.out");

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()
{

    in>>n;
    int op,x;
    for(int i=1;i<=n;i++)
    {
        in>>op>>x;
        if(op==1)
        {
            add(x);
            continue;
        }
        if(op==2)
        {
            erase(x);
            continue;
        }
        if(op==3)
        out<<((find(x)==_hash[x%MOD].end()) ? 0:1)<<endl;
    }
    in.close();
    out.close();
    return 0;
}