Cod sursa(job #607774)

Utilizator elfusFlorin Chirica elfus Data 13 august 2011 14:30:46
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.24 kb
#include<stdio.h>
#include<vector>
#define MOD 904999

using namespace std;

vector<int> H[MOD];

inline bool found(int value)
{
    int go = value % MOD;
    vector<int> :: iterator it;
    for(it = H[go].begin(); it != H[go].end() ; it ++)
        if(*it == value)
            return 1;
    return 0;
}

inline void add(int value)
{
    int go = value % MOD;
    vector<int> :: iterator it;
    for(it = H[go].begin(); it != H[go].end() ; it ++)
        if (*it == -1)
        {
            *it = value;
            return ;
        }
    H[go].push_back(value);
}

inline void del(int value)
{
    int go = value % MOD;
    vector<int> :: iterator it;
    for(it = H[go].begin(); it != H[go].end() ; it ++)
        if (*it == value)
        {
            *it = -1;
            return ;
        }

}

int main()
{
    int N,tip,number;

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

    scanf("%d",&N);
    while(N--)
    {
        scanf("%d%d",&tip,&number);
        if(tip == 1)
            if(!found(number))
                add(number);
        if(tip == 2)
            del(number);
        if(tip == 3)
            printf("%d\n",found(number));
    }

    return 0;
}