MBEEWALK - Bee Walk
Tác giả: ll931110
Ngôn ngữ: Pascal
{$MODE DELPHI}
program MBEEWALK;
const
dx: array[1..6] of integer = (-1,-1,0,0,1,1);
dy: array[1..6] of integer = (0,1,-1,1,-1,0);
maxn = 14;
type
rec = record
x,y: integer;
end;
var
f: array[-maxn..maxn,-maxn..maxn,0..maxn] of int64;
q: array[1..40000] of rec;
front,rear,back: integer;
nTest,n,i: integer;
procedure precalc;
var
i,j: integer;
u,v: rec;
begin
fillchar(f, sizeof(f), 0);
f[0,0,0] := 1;
front := 1; rear := 1; back := 1;
q[1].x := 0; q[1].y := 0;
for i := 1 to maxn do
begin
back := rear;
while front <= back do
begin
u := q[front];
inc(front);
for j := 1 to 6 do
begin
v.x := u.x + dx[j];
v.y := u.y + dy[j];
if f[v.x,v.y,i] = 0 then
begin
inc(rear);
q[rear] := v;
end;
f[v.x,v.y,i] := f[v.x,v.y,i] + f[u.x,u.y,i - 1];
end;
end;
end;
end;
begin
precalc;
readln(nTest);
for i := 1 to nTest do
begin
readln(n);
writeln(f[0,0,n]);
end;
end.