Pagini recente » Istoria paginii runda/igorj_10/clasament | Cod sursa (job #2161383) | Cod sursa (job #1903883) | Cod sursa (job #2233467) | Cod sursa (job #1549340)
///1-adaugare O(1)
///2-scoatere O(n)
///3-0/1 daca exista O(n)
///2 61 32
#include <iostream>
#include<vector>
#include<fstream>
using namespace std;
ifstream fi("hashuri.in");
ofstream fo("hashuri.out");
const int p=66013;
vector<int> H[p+5];
int n;
bool find(int x)
{
int r=x%p;
for(auto e:H[r])
if(e==x)
return 1;
return 0;
}
void insert(int x)
{
if(find(x))
return;
int r=x%p;
H[r].push_back(x);
}
void erase(int x)
{
if(!find(x))
return ;
int r=x%p;
for(auto e:H[r])
if(e==x)
{
swap(e,H[r].back());
H[r].pop_back();
return ;
}
}
int main()
{ int a,b;
fi>>n;
for(int i=1;i<=n;i++)
{
fi>>a>>b;
if(a==1)
insert(b);
if(a==2)
erase(b);
if(a==3)
fo<<find(b)<<'\n';
}
return 0;
}