Pagini recente » Cod sursa (job #1313566) | Cod sursa (job #271609) | Cod sursa (job #2689850) | Cod sursa (job #2709621) | Cod sursa (job #408700)
Cod sursa(job #408700)
const fi = 'hashuri.in';
fo = 'hashuri.out';
maxn = 1000000;
p = 1000003;
var a : array[0..maxn] of longint;
h : array[0..maxn] of longint;
f,next : array[0..p] of longint;
n,nh : longint;
f1,f2 : text;
function check(v:longint):longint;
var ok,i,j : longint;
begin
ok := 0;
i := v mod p;
i := f[i];
while i <> 0 do
begin
if a[i] = v then
begin
ok := 1; break;
end;
i := next[i];
end;
exit(ok);
end;
procedure delete(v:longint);
var i,j,k,prev : longint;
begin
i := v mod p;
j := f[i];
prev := 0;
while (j <> 0) and (a[j] = v) do j := next[j];
f[i] := j;
while j <> 0 do
begin
if a[j] = v then
begin
next[prev] := next[j];
j := next[j];
end
else
begin
prev := j;
j := next[j];
end;
end;
end;
procedure push(w,v:longint);
var i,j : longint;
begin
i := v mod p;
j := f[i];
next[i] := j;
f[i] := w;
end;
procedure init;
var u,v,i,j : longint;
begin
read(f1,n);
for i := 1 to n do
begin
read(f1,u,v);
a[i] := v;
if u = 1 then push(i,v);
if u = 2 then delete(v);
if u = 3 then Writeln(f2,check(v));
end;
end;
begin
assign(f1,fi);
reset(f1);
assign(f2,fo);
rewrite(f2);
init;
close(f1); close(f2);
end.