Cod sursa(job #905952)

Utilizator lucian666Vasilut Lucian lucian666 Data 6 martie 2013 12:42:42
Problema Hashuri Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 kb



#include<fstream>
#include<vector>

#define mod 666013
#define pb push_back
#define NN 1000001


using namespace std;
ofstream out("hashuri.out");

int n;

vector<int>G[NN];
typedef vector<int>:: iterator IT;


vector<int>:: iterator find( int x)
{

    int rest = x % mod;
        for( IT i = G[rest].begin() ; i!= G[rest].end(); ++i )
            if ( *i == x)
                return i;
    return G[rest].end();
}

void insert( int x )
{
    int rest = x % mod;
        if ( find(x) == G[rest].end() )
            G[rest].pb(x);


}

void sterge( int x )
{

    int rest = x % mod;
        IT i = find(x);
    if ( i != G[rest].end() )
        G[ rest ].erase(i);

}


int main()
{
    ifstream in("hashuri.in");

    in >> n;
    for( int tip , x ; n ; --n)
    {

        in >> tip >> x;
        if ( tip == 1)
            insert(x);

        if( tip == 2 )
            sterge(x);

        if ( tip == 3)
            out << ( find(x) == G[ x % mod].end() ? 0 : 1) << '\n';
    }

    return 0;

}