Cod sursa(job #734814)

Utilizator TabaraTabara Mihai Tabara Data 14 aprilie 2012 22:07:58
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.06 kb
#include<iostream>
#include<cstdio>
#include<vector>

using namespace std;

#define SIZE 666013
typedef vector< vector<int> > Hash;
Hash hash(SIZE, vector<int>());

bool in_hash(int what)
{
  int hs = what % SIZE;
  int sz = hash[hs].size();
  for(int i=0; i<sz; i++)
  {
    if(hash[hs][i] == what)
    {
      return true;
    }
  }
  return false;
}

void insert(int what)
{
  int hs = what % SIZE;
  if(!in_hash(what))
  {
    hash[hs].push_back(what);
  }
}

void del(int what)
{
  int hs = what % SIZE;
  int sz = hash[hs].size();
  for(int i=0; i<sz; i++)
  {
    if(hash[hs][i] == what)
    {
      hash[hs].erase(hash[hs].begin() + i);
      return;
    }
  }
}



int main()
{

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

  int N, Type, X;

  scanf("%d", &N);

  for(int i=0; i<N; i++)
  {
    scanf("%d %d", &Type, &X);

    switch(Type)
    {
      case 1:
        insert(X);
        break;
      case 2:
        del(X);
        break;
      case 3:
        printf("%d\n", in_hash(X) == true ? 1 : 0);
        break;
    }
  }

  return 0;
}