Pagini recente » Cod sursa (job #133141) | Cod sursa (job #115392) | Cod sursa (job #483575)
Cod sursa(job #483575)
const q=200003;
type pnod=^nod;
nod = record
info:longint;
urm:pnod;
end;
var p,prec:pnod;
v:array[0..200003]of pnod;
buf:array[1..1 shl 17]of char;
i,n,x:longint;
op:byte;
function caut(x:longint):byte;
var ok:byte;
begin
ok:=0;
p:=v[x mod q]; prec:=nil;
while p<>nil do
if p^.info=x then begin
ok:=1;
break;
end
else begin
prec:=p;
p:=p^.urm;
end;
caut:=ok;
end;
procedure add(x:longint);
var poz:longint;
begin
if caut(x)=0 then begin
poz:=x mod q;
new(p);
p^.info:=x;
p^.urm:=v[poz];
v[poz]:=p;
end;
end;
procedure del(x:longint);
var poz:longint;
begin
if caut(x)=1 then begin
poz:=x mod q;
if p=v[poz] then begin
v[poz]:=p^.urm;
dispose(p);
end
else begin
prec^.urm:=p^.urm;
dispose(p);
end;
end;
end;
begin
assign(input,'hashuri.in');
reset(input);
settextbuf(input,buf);
assign(output,'hashuri.out');
rewrite(output);
read(n);
for i:=1 to n do begin
read(op,x);
if op=1 then add(x);
if op=2 then del(x);
if op=3 then writeln(caut(x));
end;
close(output);
end.