Cod sursa(job #2174697)

Utilizator ade_tomiEnache Adelina ade_tomi Data 16 martie 2018 13:03:25
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.02 kb
#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

const int MOD = 666013;

vector <int> table[MOD + 1];

bool find(int x) {
    int xmod = x % MOD;

    for (int i = 0; i < table[xmod].size(); i++) {
        if (table[xmod][i] == x) {
            return true;
        }
    }

    return false;
}

void add(int x) {
    if (!find(x)) {
        table[x % MOD].push_back(x);
    }
}

void _delete(int x) {
    int xmod = x % MOD;

    for (vector<int> :: iterator it = table[xmod].begin(); it != table[xmod].end(); it++) {
        if (*it == x) {
            table[xmod].erase(it);
            return;
        }
    }
}

int main() {
    int n;

    ifstream cin ("hashuri.in");
    ofstream cout ("hashuri.out");
    
    cin >> n;

    for (int i = 1; i <= n; i++) { 
        int op, x;

        cin >> op >> x;
        if (op == 1) {
            add(x);
        } else if (op == 2) {
            _delete(x);
        } else {
            cout << (find(x) ? '1' : '0') << "\n";
        }

    }

    return 0;
}