Pagini recente » Cod sursa (job #1003038) | Cod sursa (job #2226168) | Cod sursa (job #2080318) | Cod sursa (job #259875) | Cod sursa (job #1674472)
#include <cstdio>
#define H_MOD 1000000
using namespace std;
struct elem{
int val;
elem* next;
};
elem* v[H_MOD];
bool exista(int x){
int t=x%H_MOD;
elem* it=v[t];
while(it!=NULL){
if(it->val==x)return true;
it=it->next;
}
return false;
}
void sterge(int x){
int t=x%H_MOD;
elem* it=v[t];
if(it==NULL)return;
if(it->val==x){
if(it->next==NULL){
it->val=0;
}
else{
v[t]=it->next;
}
return;
}
while(it->next!=NULL){
if(it->next->val==x){
(it->next)=(it->next->next);
return;
}
it=it->next;
}
}
void adauga(int x){
if(!exista(x)){
elem* n=new elem;
n->val=x;
n->next=v[x%H_MOD];
v[x%H_MOD]=n;
}
return;
}
int main()
{
int n;
FILE* f=fopen("hashuri.in", "r");
FILE* f1=fopen("hashuri.out", "w");
fscanf(f, "%d", &n);
for(int i=0;i<n;i++){
int op, x;
fscanf(f, "%d %d", &op, &x);
switch(op){
case 1:
adauga(x);
break;
case 2:
sterge(x);
break;
case 3:
fprintf(f1, "%d\n", (exista(x))?1:0);
}
}
return 0;
}