Pagini recente » Cod sursa (job #1608355) | Cod sursa (job #2105221) | Cod sursa (job #3224404) | Cod sursa (job #1580170) | Cod sursa (job #1090876)
//Include
#include <stdio.h>
#include <vector>
using namespace std;
FILE *in, *out;
//Constante
const int mod = 666013;
//Definitii
#define pb push_back
//Functii
void insertHa(int x);
void deleteHa(int x);
int checkHa(int x);
//Variabile
int num, type, value;
vector<int> hash[mod];
//Main
int main()
{
in = fopen("hash.in", "rt");
out = fopen("hash.out", "wt");
fscanf(in,"%d", &num);
while(num--)
{
fscanf(in,"%d%d", &type, &value);
if(type==1)
insertHa(value);
else if(type==2)
deleteHa(value);
else fprintf(out,"%d\n", checkHa(value));
}
fclose(in);
fclose(out);
return 0;
}
void insertHa(int x)
{
int pos = x % mod;
vector<int>::iterator it, end = hash[pos].end();
for(it = hash[pos].begin(); it!=end; ++it)
if(*it==x)
return;
hash[pos].pb(x);
}
void deleteHa(int x)
{
int pos = x % mod;
vector<int>::iterator it, end = hash[pos].end();
for(it = hash[pos].begin(); it!=end; ++it)
if(*it==x)
{
hash[pos].erase(it);
return;
}
}
int checkHa(int x)
{
int pos = x % mod;
vector<int>::iterator it, end = hash[pos].end();
for(it = hash[pos].begin(); it!=end; ++it)
if(*it==x)
return 1;
return 0;
}