Cod sursa(job #2432791)

Utilizator rd211Dinucu David rd211 Data 25 iunie 2019 04:00:18
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.12 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
const int prime = 1001;
vector<int> hmap[prime];
int hashf(int a)
{
    return (a%prime);
}
vector<int>::iterator findAt(int a)
{
    int h = hashf(a);
    for(vector<int>::iterator it = hmap[h].begin();it<hmap[h].end();it++)
    {
        if(*it==a)
            return it;
    }
    return hmap[h].end();
}
void add(int a)
{
    int h = hashf(a);
    if(findAt(a)==hmap[h].end())
        hmap[h].push_back(a);
}
void del(int a)
{
    int h=hashf(a);
    vector<int>::iterator it = findAt(a);
    if(it==hmap[h].end())
        return;
    hmap[h].erase(it);
}

int main()
{
    int n;
    int c,x;
    fin>>n;
    while(n--)
    {
        fin>>c>>x;
        if(c==1)
        {
            add(x);
        }
        else if(c==2)
        {
            del(x);
        }
        else
        {
            if(findAt(x)!=hmap[x%prime].end())
                fout<<1<<'\n';
            else
                fout<<0<<'\n';
        }
    }
    return 0;
}