Cod sursa(job #2174604)

Utilizator ade_tomiEnache Adelina ade_tomi Data 16 martie 2018 12:44:01
Problema Hashuri Scor 70
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) {
    table[x % MOD].push_back(x);
}

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

    for (int i = 0; i < table[xmod].size(); i++) {
        if (table[xmod][i] == x) {
            swap(table[xmod][i], table[xmod][table[xmod].size()]);
            table[xmod].pop_back();

            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;
}