Cod sursa(job #594632)

Utilizator andreitheo87Teodorescu Andrei-Marius andreitheo87 Data 8 iunie 2011 16:54:27
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#include <vector>
#include <algorithm>
#include <list>

using namespace std;

const int HASH_SZ = 1000003;

list<int> hash[HASH_SZ];

void add_hash(int val) {
  hash[val%HASH_SZ].push_back(val);
}

void remove_hash(int val) {
  hash[val%HASH_SZ].remove(val);
}

int find_hash(int val) {
  const list<int>& li = hash[val%HASH_SZ];
  return find(li.begin(), li.end(), val) == li.end() ? 0 : 1;
}

int main() {
  //  printf("%d\n", sizeof(hash[0]));
  freopen("hashuri.in", "r", stdin);
  freopen("hashuri.out", "w", stdout);
  int n;
  scanf("%d", &n);
  for (int i=0; i<n; i++) {
    int op, val;
    scanf("%d %d", &op, &val);
    switch(op) {
    case 1:
      add_hash(val);
      break;
    case 2:
      remove_hash(val);
      break;
    case 3:
      printf("%d\n", find_hash(val));
      break;
    }
  }


}