Cod sursa(job #1132214)

Utilizator catalincraciunCraciun Catalin catalincraciun Data 2 martie 2014 21:22:22
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.18 kb
/// Craciun Catalin
///  Hashuri
///   Arhiva educationala
///    www.infoarena.ro/problema/hashuri
#include <fstream>
#include <iostream>
#include <vector>

using namespace std;

#define M 700001

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

vector<int> A[M];

inline vector<int>::iterator searchElement(int x)
{
    int list=x%M;
    for (vector<int>::iterator it=A[list].begin();it!=A[list].end();++it)
        if (*it==x)
            return it;
    return A[list].end();
}

inline void eraseElement(int x)
{
    int list=x%M;
    if (searchElement(x)!=A[list].end())
        A[list].erase(searchElement(x));
}

inline void addElement(int x)
{
    int list=x%M;
    if (searchElement(x)==A[list].end())
        A[list].push_back(x);
}

int main()
{
    long n; f>>n;
    for (long i=1;i<=n;i++)
    {
        short tip; long x;
        f>>tip>>x;
        if (tip==1)
            addElement(x);
        else if (tip==2)
            eraseElement(x);
        else if (tip==3)
        {
            int list=x%M;
            if (searchElement(x)==A[list].end())
                g<<0<<'\n';
            else
                g<<1<<'\n';
        }
    }
    
    f.close();
    g.close();

    return 0;
}