Cod sursa(job #2650654)

Utilizator madalin_frFrincu Madalin madalin_fr Data 19 septembrie 2020 17:31:06
Problema Hashuri Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.95 kb
#include <bits/stdc++.h>

using namespace std;
#define MOD 711207
int N;
vector < int > G[MOD];
vector < int > ::iterator find_value(int x) {
  int list = x % MOD;
  vector < int > ::iterator it;
  for (it = G[list].begin(); it != G[list].end(); it++)
    if ( * it == x)
      return it;
  return G[list].end();
}

void insert_value(int x) {
  int list = x % MOD;
  if (find_value(x) == G[list].end())
    G[list].push_back(x);
}

void erase_value(int x) {
  int list = x % MOD;
  vector < int > ::iterator it = find_value(x);
  if (it != G[list].end())
    G[list].erase(it);
}

int main() {
  int n, op, x;
  ifstream f("hashuri.in");
  ofstream g("hashuri.out");
  f >> n;
  for (int i = 0; i < n; i++) {
    f >> op;
    f >> x;
    if (op == 1)
      insert_value(x);
    if (op == 2)
      erase_value(x);
    if (op == 3)
      g << (find_value(x) != G[x % MOD].end()) << '\n';
  }
  f.close();
  g.close();
  return 0;
}