Cod sursa(job #2987770)

Utilizator CalinHanguCalinHangu CalinHangu Data 2 martie 2023 20:22:22
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.29 kb
#include <fstream>
#include <iostream>
#include <algorithm>
#include <vector>
#include <cmath>

#define ll long long
#define pb push_back
using namespace std;

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

const int MOD = 666013;
const char nl = '\n';

ll n, q, value;

vector<ll> myHash[MOD];

bool hash_search(int x){
    int code = x % MOD;
    unsigned int i = 0;
    while(i < myHash[code].size() && myHash[code][i] != x){
        ++i;
    }
    return i < myHash[code].size();
}

void hash_add(ll x){
    int code = x % MOD;
    unsigned int i = 0;
    while(i < myHash[code].size() && myHash[code][i] != x)
        ++i;
    if(i == myHash[code].size())
        myHash[code].pb(x);
}

void hash_remove(ll x){
    int code = x % MOD;
    unsigned int i = 0;
    if(hash_search(x)){
        while(i < myHash[code].size() && myHash[code][i] != x)
            ++i;
        myHash[code].erase(myHash[code].begin() + i);
    }
}

int main()
{
    in >> n;
    for(int i = 1; i <= n; ++i){
        in >> q >> value;
        if(q == 1)
            hash_add(value);
        else if(q == 2)
            hash_remove(value);
        else if(q == 3){
            bool ok = hash_search(value);
            out << ok << nl;
        }
    }
    return 0;
}