Pagini recente » Cod sursa (job #1956414) | Cod sursa (job #2760969) | Cod sursa (job #81467) | Cod sursa (job #815724) | Cod sursa (job #914170)
Cod sursa(job #914170)
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
#define MOD 60000
int n,a,k;
vector < vector <long long> > h;
int f (long long x)
{
x=x>>1;
x=x*5;
x=x<<2;
x=x*7;
x=x%MOD;
return x;
}
int verificare (long long x)
{
long long lg;
lg=h[f(x)].size();
for(int i=0;i<lg;i++)
if(h[f(x)][i]==x)
return 1;
return 0;
}
void stergere (long long x)
{
long long aux,lg,nr;
lg=h[f(x)].size();
for(int i=0;i<lg;i++)
if(h[f(x)][i]==x)
{
nr=f(x);
aux=h[nr][i];
h[nr][i]=h[nr][lg-1];
h[nr][lg-1]=aux;
h[nr].pop_back();
}
}
void adaugare (long long x)
{
long long lg;
bool ok=false;
lg=h[f(x)].size();
for(int i=0;i<lg;i++)
if(h[f(x)][i]==x)
{
ok=true;
break;
}
if(ok==false)
h[f(x)].push_back(x);
}
int main ()
{
fin>>n;
h.resize(MOD);
for(int i=1;i<=n;i++)
{
fin>>a;
fin>>k;
if(a==1)
adaugare(k);
else if(a==2)
stergere(k);
else if(a==3)
fout<<verificare(k)<<"\n";
}
fin.close();fout.close();
return 0;
}