Cod sursa(job #3246309)

Utilizator UnknownPercentageBuca Mihnea-Vicentiu UnknownPercentage Data 2 octombrie 2024 18:28:39
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.92 kb
#include <bits/stdc++.h>

using namespace std;

ifstream f("hashuri.in");
ofstream g("hashuri.out");

const int MOD = 200'000;

vector <int> H[MOD + 1];
int n, op, x;

void Add(int val) {
    int N = val % MOD, len = H[N].size(), i = 0;
    for (i = 0; i < len && H[N][i] != val; ++i);
    
    if(i == len) H[N].emplace_back(val);
}

void Remove(int val) {
    int N = val % MOD, len = H[N].size(), i = 0;
    for(i = 0; i < len && H[N][i] != val; ++i);

    if(i < len) {
        swap(H[N][i], H[N].back());
        H[N].pop_back();
    }
}

int IsinH(int val) {
    int N = val % MOD, len = H[N].size(), i = 0;
    for(i = 0; i < len && H[N][i] != val; ++i);

    if(i < len) return 1;
    return 0;
}

int main() {
    f >> n;
    while (n--) {
        f >> op >> x;
        if(op == 1) Add(x);
        if(op == 2) Remove(x);
        if(op == 3) g << IsinH(x) << "\n";
    }

    return 0;
}