Cod sursa(job #1805864)

Utilizator edi_laitinLaitin Eduard edi_laitin Data 14 noiembrie 2016 15:50:25
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

const int MOD = 666013;
vector <int> H[MOD];
int N;

int Find(int Value)
{
  int List = Value % MOD;
  for(int i = 0; i < (int)H[List].size(); ++i)
    {
      if(Value == H[List][i])
        return i;
    }
  return -1;
}

void Insert(int Value)
{
  int List = Value % MOD;
  if(Find(Value) == -1)
    H[List].push_back(Value);
}

void Delete(int Value)
{
  int List = Value % MOD;
  int Pos = Find(Value);
  if (Pos != -1)
    H[List].erase(H[List].begin() + Pos);
}

int main()
{
    fin>>N;
    while(N--)
    {
      int op,x;
      fin >> op >> x;

      if(op == 1)
        Insert(x);
      if(op == 2)
        Delete(x);
      if(op == 3)
        fout << (Find(x) != -1) <<"\n";
    }
    return 0;
}