Pagini recente » Cod sursa (job #2429180) | Cod sursa (job #1680785) | Cod sursa (job #757999) | Cod sursa (job #2481750) | Cod sursa (job #2429847)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
const int NMax=2e6/3+1;
vector <int> v[NMax];
int cautare(int n, int caz)
{
bool ok=false;
unsigned int i;
for (i=0; i<v[n%NMax].size(); i++)
if (n==v[n%NMax][i])
{
ok=true;
break;
}
switch (caz)
{case 1:
if (ok)
return 1;
return 0;
break;
default:
return i;
break;
}
}
void stergere (int n, int poz)
{
v[n%NMax].erase(v[n%NMax].begin()+poz);
}
void inserare(int n)
{
v[n%NMax].push_back(n);
}
int main()
{
ifstream f("hashuri.in");
ofstream g("hashuri.out");
int n, operatie, numar;
f>>n;
for (int i=1; i<=n; i++)
{
f>>operatie>>numar;
switch (operatie)
{
case 1:
if (!cautare(numar, 1))
inserare(numar); break;
case 2:
if (cautare(numar, 1))
{
int p=cautare(numar, 2);
stergere(numar,p);
}
break;
default:
if(cautare(numar, 1))
g<<"1\n"; else
g<<"0\n";
}
}
return 0;
}