Pagini recente » Cod sursa (job #1590276) | Cod sursa (job #2857194) | Cod sursa (job #1098811) | Istoria paginii runda/summer2019 | Cod sursa (job #49243)
Cod sursa(job #49243)
var f:text;
x,y:int64;
p:int64;
k:byte;
a:array[0..31] of int64;
procedure go(x,y:longint;t:byte);
begin
if t=0 then exit
else begin
if x>a[t-1] then
if y>a[t-1] then
begin
p:=p+2*a[2*t-2];
go(x-a[t-1],y-a[t-1],t-1);
end
else
begin
p:=p+3*a[2*t-2];
go(a[t-1]-y+1,a[t]-x+1,t-1);
end
else if y>a[t-1] then
begin
p:=p+a[2*t-2];
go(x,y-a[t-1],t-1);
end
else go(y,x,t-1);
end;
end;
begin
a[0]:=1;
for k:=1 to 31 do a[k]:=a[k-1]*2;
assign(f,'fractal.in');
reset(f);
readln(f,k,x,y);
close(f);
go(x,y,k);
assign(f,'fractal.out');
rewrite(f);
writeln(f,p);
close(f);
end.