Pagini recente » Cod sursa (job #319280) | Cod sursa (job #406238) | Cod sursa (job #2515475) | Cod sursa (job #3133708) | Cod sursa (job #1735893)
#include <iostream>
#include <fstream>
#include <unordered_map>
#include <vector>
#include <list>
#define cin in
#define cout out
#define SIZE 1000
using namespace std;
struct adat
{
bool b;
unsigned id;
};
vector < vector <adat> > x;
ifstream in ("hashuri.in");
ofstream out ("hashuri.out");
vector <adat>::iterator find (vector < vector<adat> >& x,unsigned t, bool create, bool& success)
{
unsigned id = t % SIZE;
success = 0;
for (vector <adat>::iterator i = x[id].begin(); i < x[id].end(); i++)
if (i -> id == t)
{
success = 1;
return i;
}
if (!create)
return x[id].begin();
adat temp1;
temp1.b = 0;
temp1.id = t;
x[id].push_back (temp1);
return x[id].end() - 1;
}
int main()
{
int n;
cin >> n;
x.resize (SIZE);
int q, w;
bool ok;
vector <adat>::iterator t;
for (int i=1;i<=n;i++)
{
cin >> q >> w;
if (q == 1)
{
t = find (x, w, 1, ok);
t -> b = 1;
}
else
if (q == 2)
{
t = find (x, w, 0, ok);
if (ok)
t -> b = 0;
}
else
{
t = find (x, w, 0, ok);
if (ok)
cout << t->b << "\n";
else
cout << 0 << "\n";
}
}
}