Cod sursa(job #791912)

Utilizator idomiralinIdomir Alin idomiralin Data 25 septembrie 2012 19:12:14
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.25 kb
# include <cstdio>
# include <vector>

# define MOD 601613

using namespace std;

vector <int> G[MOD]; 

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

void insert_value(int v)
{
     int list = v % MOD;
     
     if (find_value(v) == G[list].end())
        G[list].push_back(v);

}

void erase_value(int v)
{
     int list = v % MOD;
     
     vector <int> :: iterator it = find_value(v);
     
     if (it != G[list].end())
        G[list].erase(it);
        
}
        
int main()
{
    int n, op, val;
    
    freopen("hashuri.in","r",stdin);
    freopen("hashuri.out","w",stdout);
    
    scanf("%d",&n);
    for ( ; n; n--)
    {
        scanf("%d%d",&op,&val);
        if (op == 1)
        {
               insert_value(val);
               continue;
               }
        if (op == 2) 
        {
               erase_value(val);
               continue;
               }
        else printf("%d\n",find_value(val) != G[val % MOD].end());
        }

return 0;
}