Cod sursa(job #1318619)

Utilizator eneskristofjd hgd eneskristo Data 16 ianuarie 2015 10:20:09
Problema Hashuri Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 kb
#include <iostream>
#include <vector>

using namespace std;
vector<long long int> values[100000];
long long int prime = 666013;
long long int n;

int ins(int num)
{
    int key = num % prime;
    int i = 0;
    int lim = values[key].size();
    while (i++ < lim)
    {
        if(values[key][i] == num)
            return 0;
    }
    values[key].push_back(num);
    return 0;
}
int rem(int num)
{
    int key = num % prime;
    int i = 0;
    int lim = values[key].size();
    while (i < lim)
    {
        if(values[key][i] == num)
        {
            values[key][i] = values[key][values[key].size() - 1];
            values[key].pop_back();
        }
        i++;
    }
    return 0;
}
int query(int num)
{
    int key = num % prime;
    int i = 0;
    int lim = values[key].size();
    while (i < lim)
    {
        if(values[key][i++] == num)
            return 1;
    }
    return 0;
}
int main()
{
    freopen("hashuri.in", "r", stdin);
    freopen("hashuri.out", "w", stdout);
    cin >> n;
    long long int i = 0;
    long long int helper;
    long long int num;
    while (i < n)
    {
        cin >> helper >> num;
        if (helper == 1)
            ins(num);
        else if (helper == 2)
            rem(num);
        else
            cout << query(num);
    }
    return 0;
}