Cod sursa(job #641918)

Utilizator SimeneSimene Robert Simene Data 29 noiembrie 2011 22:07:58
Problema Hashuri Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.12 kb
#include <cstdlib>
#include <iostream>
#include<vector>
#include<stdio.h>
using namespace std;
#define prim 666013
int n;
vector<int> v[prim];
inline vector<int>::iterator cautare(int val)
{
int list = val % prim;
vector<int>::iterator it;
for (it = v[list].begin(); it != v[list].end(); ++it)
     if (*it == val)
     return it;
return v[list].end();
}
inline void sterg(int val)
{int list=val % prim;
     vector<int>::iterator it=cautare(val);
     if(it!=v[list].end())
                          v[list].erase(it);
     }
inline void adaug(int val)
{int list=val%prim;
     if(cautare(val)==v[list].end());
     v[list].push_back(val);
}
int main()
{int operatie,valoare;
 freopen("hashuri.in","r",stdin);
 freopen("hashuri.out","w",stdout);
 for (scanf("%d",&n);n;--n)
 {
     scanf("%d %d",&operatie,&valoare);
     if (operatie==1) { adaug(valoare);
                        continue;
                        }
     if (operatie==2) { sterg(valoare);
                        continue;
                      }
    printf("%d\n",cautare(valoare)!=v[valoare % prim].end());
 }
    return 0;
}