Cod sursa(job #2385204)

Utilizator ianiIani Biro iani Data 21 martie 2019 18:31:32
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.2 kb
#include <iostream>
#include <fstream>
#include <vector>

#define MOD 666013 //nr prim

using namespace std;

ifstream fin ("hashuri.in");
ofstream fout ("hashuri.out");

vector<int> a[MOD];

int hashme(int x)
{
    return x%MOD;
}

vector<int>::iterator query(int x)
{
    int h=hashme(x);
    for (vector<int>::iterator it=a[h].begin();it!=a[h].end();++it)
        if (*it==x)
            return it;
    return a[h].end();
}

void insert(int x)
{
    if (query(x)==a[hashme(x)].end())
        a[hashme(x)].push_back(x);
}

void drop(int x)
{
    vector<int>::iterator it=query(x);
    if (it!=a[hashme(x)].end())
        a[hashme(x)].erase(it);
}

int main()
{
    int m;
    fin>>m;
    for (int v=0;v<m;v++)
    {
        char op;
        int x;
        fin>>op>>x;
        switch (op) {
            case '1':
                insert(x);
                break;
            case '2':
                drop(x);
                break;
            case '3':
            {
                if (query(x)!=a[hashme(x)].end())
                    fout<<1<<'\n';
                else
                    fout<<0<<'\n';
                break;
            }
            default:
                break;
        }
    }
    return 0;
}