Cod sursa(job #1549314)

Utilizator hasmasandragosHasmasan Dragos hasmasandragos Data 12 decembrie 2015 11:19:25
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include <bits/stdc++.h>
using namespace std;
ifstream f("hash.in");
ofstream g("hash.out");
const int P = 666013;
vector <int> H[P+5];

bool check (int x)
{
    int r=x%P,i;
    int siz=H[r].size();
    for (i=0;i<siz;i++) // parcurgere
     if (H[r][i]==x)
      return 1;
    return 0;
}

void insert (int x)
{
    if (check(x)) return;
    int r=x%P;
    H[r].push_back(x);
}

void erase (int x)
{
    if (!check(x)) return; // can be ommited
    int r=x%P,i;
    int siz=H[r].size();
    for (i=0;i<siz;i++)
      if (H[r][i]==x)
      {
          swap (H[r][i],H[r][siz]);
          H[r].pop_back();
          return ;
      }
}

int main()
{
    int t,tip,x;
    f>>t;
    while (t--)
    {
        f>>tip>>x;
        if (tip==1)
            insert(x);
        if (tip==2)
            erase(x);
        if (tip==3)
            g<<check(x)<<'\n';
    }
    return 0;
}