Cod sursa(job #961498)

Utilizator StanAndreiAndrei Stan StanAndrei Data 12 iunie 2013 14:08:48
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.13 kb
#include <stdio.h>
#include <vector>
#define MOD 666013

using namespace std;

vector<int> G[MOD];

int N;

vector<int>:: iterator search(int value)
{
    vector<int>:: iterator it;
    int l=value%MOD;
    for (it=G[l].begin();it!=G[l].end();++it)
        if (*it==value) return it;

    return G[l].end();
}

void add_value(int value)
{
    int l=value%MOD;
    if (search(value)==G[l].end())
        G[l].push_back(value);
}

void delete_value(int value)
{
    int l=value%MOD;
    vector<int>:: iterator it=search(value);
    if (it!=G[l].end())
        G[l].erase(it);
}

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

    scanf("%d\n",&N);

    int i,type,value,l;
    for (i=1;i<=N;i++)
    {
        scanf("%d %d\n",&type,&value);
        l=value%MOD;
        if (type==1) add_value(value);
        if (type==2) delete_value(value);
        if (type==3)
        {
            if (search(value)!=G[l].end())
                printf("1\n");
            else    printf("0\n");
        }
    }

    fclose(stdin);
    fclose(stdout);

    return 0;
}