Cod sursa(job #1200461)

Utilizator mr.johnFMI - Laceanu Ionut-Adrian mr.john Data 22 iunie 2014 15:28:34
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.93 kb
#include <fstream>
#include <list>

using namespace std;

list<int> hsh[666013];

int h(int val) {
  return val % 666013;
}

int insert(list<int> hash[], int val) {
  int index = h(val);
  for (auto& element: hash[index]) {
    if (element == val) {
      return 0;
    }
  }
  hash[index].push_back(val);
  return 1;
}

int find(list<int> hash[], int val) {
  int index = h(val);
  for (auto& element: hash[index]) {
    if (element == val) {
      return 1;
    }
  }
  return 0;
}

int remove(list<int> hash[], int val) {
  int index = h(val);
  hash[index].remove(val);
  return 0;
}

int main() {
  ifstream cin("hashuri.in");
  ofstream cout("hashuri.out");
  int N;
  cin >> N;
  for (int i = 0; i < N; i++) {
    int op, x;
    cin >> op >> x;
    switch(op) {
      case 1:
        insert(hsh, x);
        break;
      case 2:
        remove(hsh, x);
        break;
      default:
        cout << find(hsh, x) << '\n';
    }
  }
  return 0;
}