Cod sursa(job #425031)

Utilizator gabipurcaruGabi Purcaru gabipurcaru Data 25 martie 2010 13:57:50
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 kb
#include <vector>
#include <fstream>
using namespace std;

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

vector<int> H[1000000];
vector<int>::iterator it;

int n,i,j,op,val;
int hash_func(int val)
{
    return val%666013;
}

int main()
{
    in>>n;
    for(i=1; i<=n; i++)
    {
        in>>op>>val;
        if(op == 1)
        {
            if(H[hash_func(val)].empty())
                {H[hash_func(val)].push_back(val);continue;}
            
            it = H[hash_func(val)].begin();
            while(it != H[hash_func(val)].end() && *it != val)
                it++;
            if(it == H[hash_func(val)].end())
                H[hash_func(val)].push_back(val);
        }
        else if(op == 2)
        {
            if(H[hash_func(val)].empty())
                continue;
            it = H[hash_func(val)].begin();
            while(it != H[hash_func(val)].end() && *it != val)
                it++;
            if(it != H[hash_func(val)].end())
                H[hash_func(val)].erase(it);
        }
        else if(op == 3)
        {
            if(H[hash_func(val)].empty())
                {out<<"0\n";continue;}
            it = H[hash_func(val)].begin();
            while(it != H[hash_func(val)].end() && *it != val)
                it++;
            out <<(it != H[hash_func(val)].end())<<'\n';
        }
    }
    return 0;
}