Pagini recente » Cod sursa (job #2659844) | Cod sursa (job #647562) | Cod sursa (job #393473) | Cod sursa (job #1544420) | Cod sursa (job #2223502)
//prima sursa e buna
#include <iostream>
#include <cstdio>
#include <vector>
#define fs fscanf
#define fp fprintf
using namespace std;
typedef vector<int>::iterator vit;
FILE *f, *g;
const int mod = 50000;
vector <int> h[mod];
vit find_value(int x)
{
int list_id = x % mod;
for(vit it = h[list_id].begin(); it != h[list_id].end(); it ++)
if(*it == x)
return it;
return h[list_id].end();
}
void insert_value(int x)
{
int list_id = x % mod;
if(find_value(x) == h[list_id].end())
h[list_id].push_back(x);
}
void erase_value(int x)
{
int list_id = x % mod;
vit itv = find_value(x);
if(itv != h[list_id].end())
h[list_id].erase(itv);
}
void query(int x)
{
int list_id = x % mod;
vit itv = find_value(x);
if(itv == h[list_id].end())
fp(g, "0\n");
else fp(g, "1\n");
}
int main()
{
f = fopen("hashuri.in", "r");
g = fopen("hashuri.out", "w");
int n, i, x, y;
fs(f, "%d", &n);
for(i = 1; i <= n; i ++)
{
fs(f, "%d%d", &x, &y);
if(x == 1){
insert_value(y);
}
else if(x == 2){
erase_value(y);
}
else if(x == 3){
query(y);
}
}
fclose(f);
fclose(g);
return 0;
}