MBEEWALK - Bee Walk

Tác giả: khuc_tuan

Ngôn ngữ: Pascal

// {$APPTYPE CONSOLE}
 {$mode delphi}

var
    a : array[1..40,1..40,0..7] of integer;

procedure go(i, j, s : integer);
begin
    if s > 7 then exit;
    inc(a[i,j,s]);
    go(i,j-1,s+1);
    go(i,j+1,s+1);
    if i mod 2=0 then
    begin
        go(i+1,j,s+1);
        go(i+1,j-1,s+1);
        go(i-1,j,s+1);
        go(i-1,j-1,s+1);
    end
    else
    begin
        go(i+1,j+1,s+1);
        go(i+1,j,s+1);
        go(i-1,j+1,s+1);
        go(i-1,j,s+1);
    end;
end;

var
    k, res, st, i, j, x, y : integer;

begin
    go(20,20,0);
    read(st);
    for k:=1 to st do
    begin
        read(x);
        y := x div 2;
        x := x - y;
        res := 0;
        for i:=1 to 40 do
            for j:=1 to 40 do
                res := res + a[i,j,x] * a[i,j,y];
        writeln(res);
    end;
end.

Download