Pagini recente » Cod sursa (job #977955) | Cod sursa (job #1332529)
#include <iostream>
#include <fstream>
using namespace std;
long m=2000000001,a[1000000];
long h(long k,long i)
{
return k%m+i;
}
void inserare(long x)
{
long i;
i=0;
long j;
do
{
j=h(x,i);
if(a[j]==0 || a[j]==-1) {a[j]=x;break;}
else i++;
}while(i<m);
}
void stergere(long x)
{
long i=0;
long j;
do
{
j=h(x,i);
if(a[j]==x) {a[j]=-1;break;}
else i++;
}while(i<m && a[j]!=0);
}
long cautare(long x)
{
long i=0,j;
do
{
j=h(x,i);
if(a[j]==x) return 1;
else i++;
}while(i<m && a[j]!=0);
return 0;
}
int main()
{
long op,nr,x;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
f>>nr;
for(long i=1;i<=nr;i++)
{
f>>op>>x;
if(op==1) inserare(x);
else if(op==2) stergere(x);
else if(op==3) g<<cautare(x)<<'\n';
}
f.close();
g.close();
}