Cod sursa(job #1676470)

Utilizator GinguIonutGinguIonut GinguIonut Data 5 aprilie 2016 22:23:51
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.33 kb
#include <fstream>
#include <algorithm>
#include <iomanip>
#include <vector>

#define pdd pair<double, double>
#define x first
#define y second
#define mkp make_pair
#define nMax 100003
#define pb push_back
#define MOD 666013
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
int n, Sol;
vector<int> Hash[MOD];
void insert_value(int val)
{
    int list=val%MOD;

    for(vector<int>::iterator it=Hash[list].begin();it!=Hash[list].end();it++)
        if(*it==val)
            return;

    Hash[list].pb(val);
}
void erase_value(int val)
{
    int list=val%MOD;

    for(vector<int>::iterator it=Hash[list].begin();it!=Hash[list].end();it++)
        if(*it==val)
        {
            Hash[list].erase(it);
            return;
        }
}
inline bool search_value(int val)
{
    int list=val%MOD;

    for(vector<int>::iterator it=Hash[list].begin();it!=Hash[list].end();it++)
        if(*it==val)
            return 1;

    return 0;
}
void solve()
{
    int op, a;
    fin>>n;

    for(int i=1;i<=n;i++)
    {
        fin>>op>>a;
        switch(op)
        {
            case 1:insert_value(a);break;
            case 2:erase_value(a);break;
            case 3:Sol=search_value(a);fout<<Sol<<'\n';break;
        }
    }
}
int main()
{
    solve();
    return 0;
}