Cod sursa(job #2574104)

Utilizator MoodyFaresFares Mohamad MoodyFares Data 5 martie 2020 20:20:47
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.91 kb
#include <cstdio>
#include <vector>

using namespace std;

const int MOD = 666013;

vector<int> hs[MOD];

bool in_set(int x) {
  int m;
  m = x % MOD;
  for (auto it : hs[m]) {
    if (it == x)
      return true;
  }
  return false;
}

void insert_val(int x) {
  if (!in_set(x)) {
    int m;
    m = x % MOD;
    hs[m].push_back(x);
  }
}

void erase_val(int x) {
  if (in_set(x)) {
    int m;
    vector<int>::iterator it;
    m = x % MOD;
    it = hs[m].begin();
    while (*it != x)
      it++;
    hs[m].erase(it);
  }
}

int main() {
  freopen("hashuri.in", "r", stdin);
  freopen("hashuri.out", "w", stdout);

  int n;
  scanf("%d", &n);

  for (int i = 1; i <= n; i++) {
    int type, x;
    scanf("%d%d", &type, &x);

    if (type == 1)
      insert_val(x);
    else if (type == 2)
      erase_val(x);
    else
      printf("%d\n", in_set(x));
  }

  return 0;
}