Pagini recente » Cod sursa (job #603383) | Cod sursa (job #1692814) | Cod sursa (job #2785140) | Cod sursa (job #2294446) | Cod sursa (job #1999355)
#include <bits/stdc++.h>
using namespace std;
FILE *F = fopen("hashuri.in", "r"), *G = fopen("hashuri.out", "w");
const int MOD = 666013;
int n, x, y;
struct node{int info; node *urm;} *L[666015];
void insrz(int x)
{
node *q;
q = new node;
q->info = x;
q->urm = L[x%MOD]->urm;
L[x%MOD]->urm = q;
}
int gst(int x)
{
node *q;
q = L[x%MOD]->urm;
while(q!=NULL)
if(q->info == x) return 1;
else q = q->urm;
return 0;
}
void strg(int x)
{
node *q, *r;
q = L[x%MOD];
while(q->urm!=NULL)
if(q->urm->info == x) {r = q->urm; q->urm = r->urm; delete r; break;}
else q = q->urm;
}
int main()
{
fscanf(F, "%d ", &n);
for(int i = 0; i < MOD; ++ i)
L[i] = new node, L[i]->urm = NULL;
for(int i = 0; i < n; ++ i)
{
fscanf(F, "%d%d ", &x, &y);
if(x == 1) insrz(y);
else if(x == 3) fprintf(G, "%d\n", gst(y));
else if(gst(y)) strg(y);
}
return 0;
}