Pagini recente » Cod sursa (job #2386052) | Cod sursa (job #378085) | Cod sursa (job #1356089) | Diferente pentru autumn-warmup-2007/solutii/runda-2 intre reviziile 28 si 29 | Cod sursa (job #607328)
Cod sursa(job #607328)
#include <fstream.h>
#include <iostream.h>
#include <vector>
#define M 47777
ifstream f("hashuri.in");
ofstream g("hashuri.out");
using namespace std;
vector<int> H[M];
int P=47777;
void hAdd(int x);
void hDelete(int x);
vector<int>::iterator hCheck(int x);
vector<int>::iterator fuck;
int main()
{
int n,i,op,x;
f>>n;
for(i=1;i<=n;i++)
{
f>>op>>x;
switch(op)
{
case 1:
hAdd(x);
break;
case 2:
hDelete(x);
break;
case 3:
if(hCheck(x)!=H[x/P].end())
g<<1<<"\n";
else
g<<0<<"\n";
break;
}
}
f.close();
g.close();
return 0;
}
void hAdd(int x)
{
if(hCheck(x)==H[x/P].end())
H[x/P].push_back(x);
}
void hDelete(int x)
{
vector<int>::iterator c=hCheck(x);
if(c!=H[x/P].end())
H[x/P].erase(c);
}
vector<int>::iterator hCheck(int x)
{
vector<int>::iterator c;
for(c=H[x/P].begin();c!=H[x/P].end();++c)
if(*c==x)
return c;
return H[x/P].end();
}