Cod sursa(job #1751056)

Utilizator HuskyezTarnu Cristian Huskyez Data 31 august 2016 17:28:49
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.19 kb
#include <fstream>
#include <vector>
#define mod 600329

using namespace std;

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

vector<int> hashTable[mod];

int n;
int op, x;
char b;

vector<int> :: iterator find_value(int x, int pos)
{
    for(vector<int>::iterator it = hashTable[pos].begin(); it != hashTable[pos].end(); it++){
        if(*it == x){
            return it;
        }
    }
    return hashTable[pos].end();
}

void add_value(int x)
{
    int hashed = x%mod;

    if(find_value(x, hashed) == hashTable[hashed].end()){
        hashTable[hashed].push_back(x);
    }
}

void erase_value(int x)
{
    int hashed = x%mod;
    if(find_value(x, hashed) != hashTable[hashed].end()){
        hashTable[hashed].erase(find_value(x, hashed));
    }
}

int main()
{
    in >> n;
    for(int i=0; i<n; i++){
        in >> op >> x;
        int hashed = x%mod;
        if(op == 1){
            add_value(x);
        }
        if(op == 2){
            erase_value(x);
        }
        if(op == 3){
            find_value(x, hashed) == hashTable[hashed].end() ? b = '0' : b = '1';
            out << b << '\n';
        }
    }

    return 0;
}