Pagini recente » Cod sursa (job #2177533) | Cod sursa (job #2437851) | Cod sursa (job #1796132) | Cod sursa (job #457921) | Cod sursa (job #2108121)
#include <fstream>
#include <bits/stdc++.h>
#define m 524287
using namespace std;
ifstream f("hashuri.in");
ofstream g("hashuri.out");
vector <long long int> v[m];
int gaseste(int x)
{
for(int i=0;i<v[x%m].size();++i)
if(v[x%m][i]==x)
return i; ///returnez pozitia daca il gasesc
return -1; ///-1 daca nu l-am gasit
}
void sterge(int x, int pozitie)
{
for(int i=pozitie;i<v[x%m].size()-1;++i)
v[x%m][i]=v[x%m][i+1];
v[x%m].resize(v[x%m].size()-1);
}
int main()
{
int n;
f>>n;
for(int i=1;i<=n;++i)
{
int op;
long long int x;
/// op -> 1 : adauga x in multime
/// op -> 2 : sterge x din multime
/// op -> 3 : verifica daca x e in multime
f>>op>>x;
int pozitie=gaseste(x);
switch (op)
{
case 1:
if(pozitie==-1)
v[x%m].push_back(x);
break;
case 2:
if(pozitie!=-1)
sterge(x,pozitie);
break;
case 3:
if(pozitie==-1)
g<<0<<'\n';
else g<<1<<'\n';
break;
}
}
return 0;
}