Pagini recente » Profil Marian_Cristian | Istoria paginii utilizator/alexalbu95 | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #713076)
Cod sursa(job #713076)
#include<iostream>
#include<fstream>
using namespace std;
const int m=666667;
int T[m],n;
int hash(int k,int i){
return (k%m+i*(1+k%(m-2)))%m;
}
int cauta(int T[],int k){
int i,j;
for(i=0;i<m;i++){
j=hash(k,i);
if(T[j]==0)
return -1;
if(T[j]==k)
return j;
}
}
void insert(int T[],int k){
int j,i;
if(cauta(T,k)==-1)
for(i=0;i<m;i++){
j=hash(k,i);
if(T[j]<=0){
T[j]=k;
i=m-1;
}
}
}
void sterge(int T[],int k){
int j;
if(cauta(T,k)!=-1){
j=cauta(T,k);
T[j]=-1;
}
}
int main(){
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int x;
short int op;
f>>n;
for(int i=1;i<=n;i++){
f>>op>>x;
if(op==1)
insert(T,x);
if(op==2)
sterge(T,x);
if(op==3)
if(cauta(T,x)!=-1)
g<<"1\n";
else
g<<"0\n";
}
return 0;
}