Cod sursa(job #1637286)

Utilizator edim98Eduard Constantinescu edim98 Data 7 martie 2016 16:15:53
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.09 kb
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;

ifstream fin("hashuri.in");
ofstream fout("hashuri.out");

int n;

vector <int> Hash[MOD];

int Find(int x)
{
    int key = x % MOD;

    for(int i = 0; i < Hash[key].size(); i++)
        if(Hash[key][i] == x)
            return i;
    return Hash[key].size();
}

void Add(int x)
{
    int key = x % MOD;
    if(Find(x) == Hash[key].size())
        Hash[key].push_back(x);
}

void Delete(int x)
{
    int key = x % MOD, i = Find(x);
    if(i != Hash[key].size())
        Hash[key].erase(Hash[key].begin()+i);
}

int main()
{
    int cod, x;

    fin >> n;

    while(n--)
    {
        fin >> cod >> x;
        if(cod == 1)
        {
            Add(x);
            continue;
        }
        else if(cod == 2)
        {
            Delete(x);
            continue;
        }
        else
        {
            if(Find(x) != Hash[x % MOD].size())
                fout << 1;
            else
                fout << 0;
            fout << '\n';

        }
    }

    return 0;
}