Cod sursa(job #1916679)

Utilizator iulian_f2kGuraliuc Iulian iulian_f2k Data 9 martie 2017 10:07:34
Problema Hashuri Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <fstream>
#include <iostream>
#include <vector>
#include <algorithm>
#define MOD 666013

using namespace std;

vector<int> H[MOD];

void adauga(int x) {
    int ind = x % MOD;
    if(find(H[ind].begin(), H[ind].end(), x) == H[ind].end())
        H[ind].push_back(x);
}
void elimina(int x) {
    bool found = 0;     int ind = x % MOD;
    for(int i = 0; i < H[ind].size(); i++)
        if(H[ind][i] == x)
            found = true;
        else
            H[ind][i - 1] = H[ind][i];
    if(found)   H[ind].pop_back();
}
bool exista(int x) {
    int ind = x % MOD;
    if(find(H[ind].begin(), H[ind].end(), x) == H[ind].end())
        return 0;
    return 1;
}

int main() {
    freopen("hashuri.in","rt", stdin);
    freopen("hashuri.out", "wt", stdout);
    int N, op, x;
    scanf("%d", &N);
    while(N--) {
        scanf("%d%d", &op, &x);
        if(op == 1)         adauga(x);
        else if(op == 2)    elimina(x);
        else                cout << exista(x) << '\n';
    }
}