Pagini recente » Cod sursa (job #138722) | Cod sursa (job #1741026) | Cod sursa (job #1370463) | Cod sursa (job #161655) | Cod sursa (job #899406)
Cod sursa(job #899406)
#include <cstdio>
#include <vector> //1-ADD,2-DELETE,3-CHECK
#define L 1000111
#define lungime 666013
using namespace std;
vector<int> H[lungime];
int n;
inline int compute_function(int x)
{
return x%lungime;
}
void ADD(int element)
{
int a=compute_function(element);
H[a].push_back(element);
}
void DELETE(int element)
{
int a=compute_function(element);
vector<int>::iterator it;
for(it=H[a].begin();it!=H[a].end();it++)
{
if(*it==element)
{
*it=0;
break;
}
}
}
bool CHECK(int element)
{
int a=compute_function(element);
vector<int>::iterator it;
for(it=H[a].begin();it!=H[a].end();it++)
{
if(*it==element)
{
return 1;
}
}
return 0;
}
int main()
{
FILE *inFile;
FILE *outFile;
inFile=fopen("hashuri.in","r");
outFile=fopen("hashuri.out","w");
fscanf(inFile,"%d",&n);
for(int i=1;i<=n;i++)
{
int op,x;
fscanf(inFile,"%d %d",&op,&x);
if(op==1)
{
ADD(x);
}
if(op==2)
{
DELETE(x);
}
if(op==3)
{
bool oki=CHECK(x);
fprintf(outFile,"%d\n",oki);
}
}
fclose(inFile);
fclose(outFile);
return 0;
}