Cod sursa(job #3357948)

Utilizator TestLicenta123Test Test TestLicenta123 Data 13 iunie 2026 22:07:41
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.16 kb
#include <fstream>

using namespace std;

const int P = 1000019;
int head[P];
int val[1000005];
int nxt[1000005];
int cnt = 0;

int find(int x) {
    int h = x % P;
    for (int i = head[h]; i; i = nxt[i]) {
        if (val[i] == x) return 1;
    }
    return 0;
}

void insert(int x) {
    int h = x % P;
    for (int i = head[h]; i; i = nxt[i]) {
        if (val[i] == x) return;
    }
    cnt++;
    val[cnt] = x;
    nxt[cnt] = head[h];
    head[h] = cnt;
}

void remove(int x) {
    int h = x % P;
    int prev = 0;
    for (int i = head[h]; i; i = nxt[i]) {
        if (val[i] == x) {
            if (prev == 0) {
                head[h] = nxt[i];
            } else {
                nxt[prev] = nxt[i];
            }
            return;
        }
        prev = i;
    }
}

int main() {
    ifstream fin("hashuri.in");
    ofstream fout("hashuri.out");

    int n;
    fin >> n;

    for (int i = 0; i < n; ++i) {
        int op, x;
        fin >> op >> x;
        if (op == 1) {
            insert(x);
        } else if (op == 2) {
            remove(x);
        } else {
            fout << find(x) << "\n";
        }
    }

    fin.close();
    fout.close();
    return 0;
}