Cod sursa(job #1515399)

Utilizator andreitulusAndrei andreitulus Data 1 noiembrie 2015 16:17:00
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <stdio.h>
#include <vector>
#define MOD 666013
using namespace std;

vector <int> H[MOD];


int find(int x)
{
    int key = x % MOD, i, n;

    n = H[key].size();

    for(i = 0; i < n; i++)
    {
        if(H[key][i] == x)
            return 1;
    }

    return 0;
}



void add(int x)
{
    int key = x % MOD;

    if(!find(x))
        H[key].push_back(x);
}



void deletex(int x)
{
    int key = x % MOD, n, i;

    n = H[key].size();

    for(i = 0; i < n; i++)
    {
        if(H[key][i] == x)
        {
            H[key].erase(H[key].begin() + i);
            return;
        }

    }

}



void solve()
{
    int i, m, c, x;

    scanf("%d", &m);

    for(i = 1; i <= m; i++)
    {
        scanf("%d %d", &c, &x);

        if(c == 1)
            add(x);
        else
            if(c == 2)
                deletex(x);
        else
            printf("%d\n", find(x));

    }

}



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

    solve();

    fclose(stdin);
    fclose(stdout);

    return 0;
}