18 lines
440 B
ObjectPascal
18 lines
440 B
ObjectPascal
program drop;
|
|
var i,z,k,d,j:longint;
|
|
bo:array[0..800000]of boolean;
|
|
begin
|
|
assign(input,'drop.in');reset(input);
|
|
assign(output,'drop.out');rewrite(output);
|
|
readln(d,i);
|
|
fillchar(bo,sizeof(bo),#0);
|
|
for k:=1 to i do
|
|
begin
|
|
z:=1;
|
|
for j:=1 to d-1 do
|
|
if bo[z] then begin bo[z]:=false;z:=z*2+1;end
|
|
else begin bo[z]:=true;z:=z*2;end;
|
|
end;
|
|
writeln(z);
|
|
close(input);close(output);
|
|
end. |