Cod sursa(job #1334373)

Utilizator rsteliRadu Stelian rsteli Data 4 februarie 2015 12:12:24
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.2 kb
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("hashuri.in");
ofstream cout("hashuri.out");

#define nmax 1000010
#define mod 1000003

int n,tip,x;
vector<int> h[nmax];

vector<int>::iterator cauta(int nr)
{
    int nrmod;
    vector<int>::iterator it;
    nrmod=nr%mod;
    for (it=h[nrmod].begin();it!=h[nrmod].end();it++)
        if (*it==nr)
            return it;
    return it;
}

void adauga(int nr)
{
    int nrmod;
    vector<int>::iterator it;
    nrmod=nr%mod;
    it=cauta(nr);
    if (it==h[nrmod].end())
        h[nrmod].push_back(nr);
}

void sterge(int nr)
{
    int nrmod;
    vector<int>::iterator it;
    nrmod=nr%mod;
    it=cauta(nr);
    if (it!=h[nrmod].end())
        h[nrmod].erase(it);
}

int main()
{
    int i,j,nrmod;
    vector<int>::iterator it;
    cin>>n;
    for (i=1;i<=n;i++)
    {
        cin>>tip>>x;
        if (tip==1)
            adauga(x);
        if (tip==2)
            sterge(x);
        if (tip==3)
        {
            nrmod=x%mod;
            it=cauta(x);
            if (it!=h[nrmod].end())
                cout<<1;
            else cout<<0;
            cout<<'\n';
        }
    }
}