Cod sursa(job #1374853)

Utilizator killlerr1Chilom Mircea killlerr1 Data 5 martie 2015 11:03:50
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.23 kb
#include <fstream>
#include <vector>
using namespace std;

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

#define MOD 666013

int n;
vector<int> G[MOD];

inline vector<int>::iterator find_value( int x )
{
    int lista = x % MOD;
    vector<int>::iterator it;
    for( it = G[lista].begin(); it != G[lista].end(); ++it )
        if( *it == x )
            return it;
    return G[lista].end();
}

inline void insert_value( int x )
{
    int lista = x % MOD;
    if( find_value(x) == G[lista].end() )
        G[lista].push_back(x);
}

inline void erase_value( int x )
{
    int lista = x % MOD;
    vector<int>::iterator it = find_value(x);

    if(it != G[lista].end())
        G[lista].erase(it);

}

int main()
{
    is >> n;
    int op, x;
    for( int i = 1; i <= n; ++i )
    {
        is >> op >> x;
        if( op == 1 )
            insert_value(x);
        if( op == 2 )
            erase_value(x);
        if( op == 3 )
        {
            vector<int>::iterator it = find_value(x);
            if( it != G[x % MOD].end() )
                os << '1' << '\n';
            else
                os << '0' << '\n';
        }
    }

    is.close();
    os.close();
    return 0;
}