Cod sursa(job #1208792)

Utilizator RarRaresNedelcu Rares RarRares Data 16 iulie 2014 16:15:06
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
#include <iostream>
#include <cstdio>
#include <vector>
#define mod 666013

using namespace std;

vector<int> h[mod];

vector<int>::iterator cauta(int x){
    int lista = x % mod;
    vector<int>::iterator it;
    for(it = h[lista].begin(); it != h[lista].end(); it++)
        if(*it == x)
            return it;

    return h[lista].end();
}

void adauga(int x){
    int lista = x % mod;
    if(cauta(x) == h[lista].end())
        h[lista].push_back(x);
}

void sterge(int x){
    int lista = x % mod;
    vector<int>::iterator it = cauta(x);
    if(it != h[lista].end())
        h[lista].erase(it);
}

int main()
{
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    int n;
    scanf("%d", &n);
    int op, x;
    for(int i = 1; i <= n; ++i){
        scanf("%d %d", &op, &x);
        if(op == 1){
            adauga(x);
            continue;
        }
        if(op == 2){
            sterge(x);
            continue;
        }
        printf("%d\n", cauta(x) != h[x % mod].end());
    }
    return 0;
}