Pagini recente » Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #2616126) | Monitorul de evaluare | Cod sursa (job #1020658)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <vector>
#define MOD 666013
using namespace std;
vector<int> hashTable[MOD];
void add(int x){
hashTable[x % MOD].push_back(x);
}
void deleteFromHash(int x){
for (int i=0; i<hashTable[x % MOD].size(); i++){
if (hashTable[x % MOD][i] == x){
hashTable[x % MOD].erase(hashTable[x % MOD].begin() + i);
break;
}
}
}
int exists(int x){
int ex = 0;
for (int i=0; i<hashTable[x % MOD].size(); i++){
if (hashTable[x % MOD][i] == x){
ex = 1;
break;
}
}
return ex;
}
int main()
{
freopen("hashuri.in", "r", stdin);
freopen("hashuri.out", "w", stdout);
int n;
scanf("%d", &n);
int op, x;
for (int i=0; i<n; i++){
scanf("%d %d", &op, &x);
switch(op){
case 1:
add(x);
break;
case 2:
deleteFromHash(x);
break;
case 3:
if (exists(x)){
printf("1\n");
} else {
printf("0\n");
}
break;
}
}
return 0;
}