Cod sursa(job #2428800)

Utilizator ZenoTeodor Anitoaei Zeno Data 6 iunie 2019 15:37:01
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.26 kb
#include <bits/stdc++.h>

#define MOD 999983

#define MAX(a, b) (a > b ? a : b)

using namespace std;

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

vector<int> hashTable[MOD];
int op, aux;
int n;

int InHashTable(int key)
{
    int hashList = key % MOD;
    for(int i = 0; i < hashTable[hashList].size(); i++)
        if(hashTable[hashList][i] == key)
            return 1;
    return 0;
}

void PutHash(int key)
{
    int hashList = key % MOD;
    if(!InHashTable(key))
        hashTable[hashList].push_back(key);
}

void DeleteHash(int key)
{
    int hashList = key % MOD;
    if(InHashTable(key))
        for(int i = 0; i < hashTable[hashList].size(); i++)
            if(hashTable[hashList][i] == key)
            {
                hashTable[hashList].erase(hashTable[hashList].begin() + i);
            }
}

int main()
{
    fin >> n;
    while(n--)
    {
        fin >> op >> aux;
        switch(op)
        {
        case 1:
            if(!InHashTable(aux))
                PutHash(aux);
            break;
        case 2:
            if(InHashTable(aux))
                DeleteHash(aux);
            break;
        case 3:
            fout << InHashTable(aux) << '\n';
        }
    }
    return 0;
}