Cod sursa(job #2254525)

Utilizator bahnarualexandruBahnaru Alexandru bahnarualexandru Data 5 octombrie 2018 15:02:17
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include <bits/stdc++.h>
#define P 777013
using namespace std;

vector <int> h[P];
ifstream fin ("hashuri.in" );
ofstream fout ("hashuri.out");
void add (int x)
{
  int r;
  r = x % P;
  for (auto w : h[r])
    if (w == x) return;
  h[r].push_back(x);
}

void sterge (int x)
{
    int r ,L ,i;
    r = x % P;
    L = h[r].size();
    for (i = 0 ; i < L ; i++)
    {
        if(x == h[r][i])
        {
            h[r][i] = h[r][L - 1];
            h[r].pop_back();
            return;
        }
    }

}
int cauta (int x)
{
    int r;
    r = x % P;
    for (auto v : h[r])
        if (v == x) return 1;
    return 0;
}

int main()
{
    int i ,op ,x ,n;
    fin >> n;
    for (i = 1 ; i <= n ; i++)
    {
        fin >> op >> x;
        if(op == 1)
          add(x);
        else if (op == 2)
          sterge(x);
        else
        {
            if (cauta(x) ) fout << "1" << "\n";
            else fout << "0" << "\n";
        }
    }
    return 0;
}