Pagini recente » Cod sursa (job #1296418) | Statistici Lungu Roxana (lunguroxana) | Cod sursa (job #1641302) | Cod sursa (job #2797740) | Cod sursa (job #914076)
Cod sursa(job #914076)
#include<fstream>
#include<vector>
#include<algorithm>
using namespace std;
ifstream fin("hashuri.in");
ofstream fout("hashuri.out");
#define MOD 72000
int n,a,k;
vector < vector <int> > h;
int f (long long x)
{
x=x<<1;
x=x*2;
x=x+5;
x=x/7;
x=x>>9;
return x%MOD;
}
int verificare (long long x)
{
int 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 (int x)
{
int 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)
{
/*
int 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;
}