Pagini recente » Cod sursa (job #2344168) | Cod sursa (job #1728075) | Cod sursa (job #112931) | Cod sursa (job #102089) | Cod sursa (job #2746348)
#include <bits/stdc++.h>
#define Nr_Prim 666013
using namespace std;
ifstream fin("a.in");
ofstream fout("a.out");
int n, o, x, p, ok, poz;
vector <int> h[Nr_Prim];
bool Gasire(int x)
{
p = x % Nr_Prim;
vector<int>::iterator it;
for(it = h[p].begin(); it != h[p].end(); ++it) // cautam in lista lui p pe x
if(*it == x)
return 1;
return 0;
}
inline vector<int>::iterator Pozitie(int x)
{
p = x % Nr_Prim;
vector<int>::iterator it;
for (it = h[p].begin(); it != h[p].end(); ++it)
if (*it == x)
return it;
}
int main()
{
fin >> n;
for(int i = 1; i <= n; i++)
{
fin >> o;
if(o == 1) // inserare
{
fin >> x;
p = x % Nr_Prim;
if(Gasire(x) == 0) // daca nu exista elementul x in lista p
h[p].push_back(x); // il adaugam
}
else if(o == 2) // stergere
{
fin >> x;
p = x % Nr_Prim;
ok = Gasire(x);
if (ok == 1)
h[p].erase(Pozitie(x));
}
else if(o == 3) // afisare 1 / 0
{
fin >> x;
p = x % Nr_Prim;
if(Gasire(x) == 1)
fout << 1 << "\n";
else
fout << 0 << "\n";
}
}
return 0;
}